手记

入门Node.js

1.概念
Node.js是什么
1、以前只有浏览器可以解析执行JavaScript代码,Node.js作者把Google中V8引擎移植出来开发的一个独立JavaScript运行环境,node.js就是一个运行JavaScript运行时的环境
2、在node.js这个环境下,给JavaScript提供了一些服务器级别的操作API
3、Node.js是事件驱动、非阻塞IO模型(异步)的
4、JavaScript相关的包都存放在npm上,使用时可以随时使用命令进行下载 例如下载jquery则使用命令 npm install jquery

Node.js能做什么
1、Web服务器后台、命令行工具
2.学习网站
Nodejs中文社区 cnodejs.org/
新手入门 www.nodebeginner.org/
3.安装完后输入 node --version或者 node -v确认版本

2.基础知识
2.1输出helloworld
在路径:D:\Project\Node.js\1 下新建文件helloworld.js 编写代码:

var foo = 'helloworld';
console.log(foo);

打开控制台 win + r 输入 cmd
进入文件路径

执行命令:
node helloworld.js

2.2读取文件
当前路径D:\Project\Node.js\1下新建文件a.txt里面放入内容我爱你
新建js文件read.js写入代码

//加载核心模块fs file-system
var fs = require('fs');

//读取文件
fs.readFile('a.txt', function(error, data){
	console.log(data);
	console.log(data.toString());
})

执行命令node read.js

总结:readFile接口第一个参数路径读取成功则执行回调函数,data为读取的数据为二进制数据

2.3写文件
当前路径D:\Project\Node.js\1新建js文件write.js编写代码

//加载核心模块fs file-system
var fs = require('fs');

//1.文件路径 2.文件内容 3.回调函数
fs.writeFile('b.txt', '你爱我', function(error){
	
})

执行命令 node write.js
结果:
1.当前路径下会新建一个b.txt文件,打开文件,里面会有我们写入的内容“你爱我”
2.当我们修改接口writeFile参数 b.txt 为 a.txt 执行命令后会将a.txt里面内容删除 然后写入内容"你爱我"

2.4 http服务
当前路径D:\Project\Node.js\1新建js文件http.js编写代码

 //加载http模块
var http = require('http');

//创建一个Web服务器
var server = http.createServer();

//注册request事件
server.on('request', function(){
	console.log('服务器成功收到请求事件');
})

//绑定端口号
server.listen(3000,function(){
	console.log('启动成功 端口号 3000');
})

执行命令 node http.js

服务器启动成功
使用浏览器访问 127.0.0.1:3000

查看服务器:

其实很好理解,按照字面意思写代码,饿了就要吃饭的逻辑,
1.首先客户端要访问服务器,就要有一个服务器

var server = http.createServer();

2.有了服务器就要启动它 在3000端口启动

server.listen(3000,function(){console.log('启动成功 端口号 3000');})

3.服务器创建好了并且启动了 那么客户端访问的时候 服务器需要用一个东西去接收访问 就像存钱需要存取款机才能把钱存进去 那么存取款机就是 on注册的事件

server.on('request', function(){
	console.log('服务器成功收到请求事件');
})

事件函数回调函数参数request:

//注册request事件
server.on('request', function(request, response){
	console.log('服务器成功收到请求事件');
	console.log('参数request = ' + request.url);
})

启动服务器 node http.js
浏览器输入http://127.0.0.1:3000/aaaaaa
参数request.url为地址端口号的访问路径

事件函数回调函数参数response:

//注册request事件
server.on('request', function(request, response){
	console.log('服务器成功收到请求事件');
	console.log('参数request = ' + request.url);
	
	response.write('woyeaini');
	response.end();
})

启动服务器、访问服务器、客户端收到了服务器发过来的woyeaini

其中response.end();表示服务器往客户端发送内容停止写入并发送过去 如果不使用这句则会一直等待

3模块系统
3.1核心模块

Node为js提供了很多服务器级别API,这些API大多包装到核心模块中了,例如上面已经使用的文件操作fs模块,http服务构建的http模块,os操作系统信息模块

//加载不同模块
var fs = require('fs');	
var http = require('http');
var os = require('os');

3.2自定义模块
简单的模块化例子
在D:\Project\Node.js\2路径下新建a.js和b.js文件
分别编写js代码

//a.js文件内容
console.log('a.js被执行了');
require('./b.js');
//b.js文件内容
console.log('b.js被执行了');

切换到路径D:\Project\Node.js\2执行命令结果如下

以上例子说明每一个js文件都是一个模块,执行不同的js可以使用require加载模块,require另一个作用是返回加载模块导出的对象,举例子
修改a.js和b.js代码

//a.js文件内容
var ret = require('./b.js');
console.log(ret);
//b.js文件内容
var foo = 'bbbbb';
exports.foo = 'hello';

执行命令可以看到结果

每个文件都提供一个对象exports,可以将模块中的变量,函数挂载上去,使用require加载的时候,就会返回该文件的对象exports;
将函数add挂在对象上为

exports.add = function(x,y){
	return x + y;
}
0人推荐
随时随地看视频
慕课网APP