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 = 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 数组

require("events")EventEmitter().listenerCount(EventEmitter的实例对象名(eventEmitter), event_name) 类调用类方法. 返回eventEmitter对象下event_name 监听的callback数量num

你可能感兴趣的:(nodejs 初步安装使用)