node.js入门基础

Node.js简介

  1. Node.js是基于Chrome JavaScript运行时建立的一个平台,使用C++编写的,实际上它是对Google Chrome V8(V8是Google Chrome浏览器的JavaScript引擎)进行了封装,它主要用于创建快速的、可扩展的网络应用。node.js采用事件驱动和非阻塞I/O模型,使其变得轻微和高效,非常适合构建运行在分布式设备的数据密集型实时应用。
  2. Node.js为什么会出现
  • 以前是没有人会想到用JavaScript作为自己的web server 这是因为什么呢?因为JavaScript是比较慢和乱 
    
  • V8引擎解决了JavaScript慢的问题
  • commonjs解决了乱的问题
  • Node的特性是事件驱动
  • 为了弥补JavaScript在服务器端的空白

安装

  1. 先安装好HomeBrew
  • HomeBrew是什么?
  • Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件。
  • Homebrew安装
  • Homebrew的安装非常简单,打开终端复制、粘贴以下命令,回车,搞定
  • ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
  • brew install node
  • 或者官网直接下载
  • node -v出现版本号安装成功

异步式I/O(非阻塞式)

1.针对所有I/O操作不采用阻塞策略,当线程遇到I/O操作时,不会以阻塞的方式等待I/O操作的完成或数据的返回,
而只是讲IO请求发送给操作系统,继续执行下一条语句,当操作系统完成IO操作时,以事件的形式通知执行IO操
作的线程,线程会在特定时候处理这个事件,为了 处理异步IO,线程必须有事件循环,不断的检查有没有未处理
的事件,依次予以处理

编写首个服务器程序

1.“Hello World: node.js Web服务器
var http = require(‘http’);//http库
http.createServer(function (req, res) //新服务器
res.writeHead(200, {‘Content-Type’: ‘text/plain; charset=utf-8’});//设置http响应头,否则不能返回真实内容给客户端
res.end('大家下午好');
}).listen(7777, "localhost");
2.对于express 新手来说,我推荐一个 express脚手架工具。Express基于Node.js的一个Web框架。
npm install –g express
npm install -g express-generator
express -e myapp
候处理这个事件,为了 处理异步IO,线程必须有事件循环,不断的检查有没有未处理的事件,依次予以处理

核心API

1.Events 在浏览器中Event模型是绑定在DOM上的,所以Node创建了EventEmitter类来提供基础的事件功能。所有node的事件功能都围绕这EventEmitter。

  • EventEmitter提供了一系列方法,其中最主要的是on和emit,on方法为事件创建了监听器。
  • 创建一个新类支持EventEmitter事件
  • var utils = require(‘utils’);//为了调用它的inherits方法
  • EventEmitter = require(‘events’).EventEmitter;//引入
  • var Sever = function () {console.log(‘init’)}//sever函数
  • utils.inherits(Server, EventEmitter)//给Sever继承用
  • var s = new Sever();//创建基础sever类
  • s.on(‘abc’, function(){console.log(‘abc’)});//监听事件
  • s.emit(‘abc’);//触发事件
  1. HTTP var http = require(’http’);
  2. URL. var URL = require(‘url’);
    var myUrl = “http://www.nodejs.org’’
    parsedUrl = URL.parse(myUrl);
  3. querystring
    var qs = require(‘querystring’);
    qs.parse(‘a=1&b=2&c=d’);
  4. I/O
    var fs = require(‘fs’);
    var filehandle = fs.readFile(‘data.txt’, function(err, data){console.log(data)});
posted @ 2017-10-17 16:02  FE-神鸟  阅读(134)  评论(0)    收藏  举报