nodejs|nodejs 初步安装使用

安装(centos6.4)

wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz tar -xvf node-v8.11.3-linux-x64.tar.xz mv node-v8.11.3-linux-x64/ nodejs cd nodejs/bin ./node就能正常使用了 想要命令行直接输node进交互式 创建个软连接即可 ln -s 当前绝对路径 /usr/local/bin/node即可

新建一个http服务器
var http =require("http"); http.createServer(function(request,response){ response.writeHead(200,{"Content-Type":'text/plain'}); response.end("hello world \n"); }).listen(5000); console.log("server run in http://127.0.0.1:5000/")另开一个终端发送连接 curl -i http://localhost:5000/

npm包管理工具 使用 npm -v 查看npm的版本来验证npm是否安装成功,源码安装nodejs自带npm
npm包管理工具更新命令
npm install npm -g
如果想使用淘宝镜像
cnpm install npm -g
使用npm 安装包
npm install 模块名
使用npm 更新包
npm update 模块名
首先安装web模块最常用的包express
npm install express
npm安装的所有包的路径都在根目录下的lib/node_modules
比如我的node安装路径 /home/Desktop/nodejs下
那么模块的包就在/home/Desktop/nodejs/lib/node_modules
npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。
npm unpublish @可以撤销发布自己发布过的某个版本代码。
nodejs的使用模块
http构建web服务模块 fs读取文件模块 events事件绑定 事件监听 模块

nodejs 的异步依托于回调函数,但不是使用了回调就代表异步 fs是读取文件的包
var fs = require("fs"); fs.readFile("./data/test1.txt",function(err,data){ if (err) return console.error(err); console.log(data.toString()); }); console.log("end")

nodejs 事件监听 var events = require("events")
通过eventEmitter = new events.EventEmitter(); 创建一个事件对象eventEmitter, 属于events.EventEmitter()
通过eventEmitter.on(event_name,callback) 注册事件
通过eventEmitter.emit(event_name) 唤醒事件
下面是示例
var events = require("events") var eventEmitter = new events.EventEmitter(); var connect_func = function(){ console.log("connect success!") eventEmitter.emit("recv_data"); }; var recv_data = https://www.it610.com/article/function(){ console.log("recv_data is success"); }eventEmitter.on("connect",connect_func); eventEmitter.on("recv_data",recv_data); eventEmitter.emit("connect"); console.log("produre is end"); 程序运行结果: connect success! recv_data is success produre is end

一个callback是可以注册多个event_name的
同样一个event_name也可以注册多个callback
监听事件的其他API
eventEmitter.once(event_name,callback) 为callback指定一个单次监听器
eventEmitter.removeListener(event_name,callback) 移除callback对应的监听器之一(event_name对应的监听)
eventEmitter.removeAllListeners([event_name]) 如果指定event_name,则移除事件名对应的所有callback,如果不指定,则移除所有event_name对应的callback
eventEmitter.setMaxListeners(num) 如果eventEmitter注册的事件超过10个就会报警,该语句可以修改注册事件上限num
eventEmitter.emit(event, [callback1], [callback2], [...]) 按参数的顺序执行每个监听器,如果事件有注册监听返回 true,否则返回 false,如果唤醒多个callback,返回的是callback对应的boolean值组成的数组
eventEmitter.listeners(event_name) 返回event_name监听的所有callback 数组
【nodejs|nodejs 初步安装使用】require("events")EventEmitter().listenerCount(EventEmitter的实例对象名(eventEmitter), event_name) 类调用类方法. 返回eventEmitter对象下event_name 监听的callback数量num

    推荐阅读