特点
- 提供高性能的Web服务
- IO 性能强大
- 事件处理机制完善
- 天然能够处理DOM
- 社区非常活跃,生态圈日趋完善
优势
- 处理大流量的数据
- 适合实时交互的应用
- 完美支持对象数据库 【MongoDB等】
- 异步处理大量并发连接【同时有很多用户连接访问】
准备
- JavaScript
- ES6
- 一些服务器相关的知识
- 最好在Linux系统下进行开发 【服务器大多数是Linux】
操作文件
//阻塞式代码
// var fs = require('fs');
// var data = fs.readFileSync('data.txt');//同步阻塞式,同步调用
// console.log(data.toString());//转成字符串
//非阻塞代码
var fs = require('fs');
fs.readFile('data.txt',function(err,data){
if(err){
return console.error(err);
}
console.log(data.toString())
});//异步调用,匿名函数:回调函数
console.log('程序执行完毕')
事件机制
image.png
image.png
//引入event 模块并创建eventsEmitter对象
var events = require('events')
var eventEmiter = new events.EventEmitter();
// let eventEmitter = new events.EventEmitter();
//绑定事件处理函数
var connctHandler = function connected(){
console.log('connected被调用')
};
eventEmiter.on('connection',connctHandler);//完成事件绑定
//触发事件
eventEmiter.emit('connection');
console.log('执行完毕')
//触发事件
Node模块化
image.png
image.png
image.png
image.png
//hello.js 模块的主要逻辑
function Hello(){
var name ;
this.setName = function(argName){
name = argName;
}
this.sayHello = function(){
console.log('hello'+name);
}
};
module.exports = Hello; //对模块进行导出
//main.js
// 调用hello模块
var hello = require('./hello');//当前目录下寻找,大小写敏感
hello = new hello();
hello.setName('dyidss');
hello.sayHello();
Node.js函数
image.png
image.png
网友评论