Node(一)
(一)安装node
1、Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/。
2、检查是否安装成功
(二)简单使用node
创建文件01-helloworld.js
var foo = 'bar dfd'
console.log(foo)
在终端处运行
node 01-helloworld.js
结果:
(三)node中fs模块
fs模块用于对系统文件及目录进行读写操作。
1、先引入fs核心模块
var fs = require('fs');
2、读取文件
readFile:
- 第一个参数是文件路径
- 第二个路径是回调函数
fs.readFile('../text.txt',function(error,data){
// console.log(data); //输出16进制
if(error) {
console.log("失败");
}else{
console.log(data.toString())
}
})
在终端处运行
node 02-file.js
结果:
3、写入文件
writeFile:
- 第一个参数:文件路径
- 第二个参数:文件内容
- 第三个参数:回调函数 参数(error)
fs.writeFile('../text2.txt','h哈哈哈哈gdksjasdgh',function(error){
if(error) {
console.log("失败");
}else{
console.log("成功");
}
})
在终端处运行
node 03-writefile.js
结果:
此时在你写文件的目录下多了一个叫text2.txt
(三)node中http模块
http模块可以用来构建服务器
1、引入htpp模块
var http = require('http');
2、创建web服务器
var server = http.createServer()
3、发送请求
- 当客户端请求过来,触发request请求事件
- 两个参数:
- request:请求对象可以用来获取客户端的一些请求信息,例如请求路径;
- response:响应对象可以用来给客户端发消息
server.on('request', function (request, response) {
//response中的write可以给客户端发送响应数据(只能是字符串和二进制),可以使用多次,最后一定用end结束响应
response.write('hello');
response.write('hhhhh');
response.end()
// response.end('dsfds hello')
})
4、根据不同的路径发送不同的内容
server.on('request', function (request, response) {
var url = request.url;
if (url === '/') {
var products = [{
name: 'df',
age: 13
}, {
name: 'ds',
age: 14,
}, {
name: 'asd',
age: 15
}];
response.end(JSON.stringify(products));
//请求我的客户端的地址
console.log(request.socket.remoteAddress, request.socket.remotePort);
} else if (url === '/login') {
response.end('login')
} else if (url === '/chinese') {
//解析中文
//在http协议中 Content-Type就是用来告知对方我给你发送的数据内容是什么类型
response.setHeader('Content-Type', 'text/plain; charset=utf-8')
response.end('火火恍恍惚惚哈哈哈')
} else if(url === '/html'){
//html格式文本
response.setHeader('Content-Type', 'text/html; charset=utf-8')
response.end('<h2>你好啊<a href="">点我</a></h2>')
}
else {
response.end('404')
}
})
5、绑定端口号,启动服务器
server.listen(3000, function () {
console.log("服务器启动成功");
});
http和fs结合使用
1、引入模块
var http = require('http');
var fs = require('fs')
2、创建web服务器,并返回实例
var server = http.createServer()
3、发送请求
server.on('request', function (req, res) {
var url = req.url;
//引入html文件
if (url === '/') {
fs.readFile('../resource/index.html', function (err, data) {
if (err) {
res.setHeader('Content-Type', 'text/plain; charset=utf-8')
res.end('文件读取失败')
} else {
res.setHeader('Content-Type', 'text/html; charset=utf-8')
res.end(data)
}
})
}
//引入图片
else if (url === '/img') {
fs.readFile('../resource/u=1967481700,3410819518&fm=26&gp=0.jpg', function (err, data) {
if (err) {
res.setHeader('Content-Type', 'text/plain; charset=utf-8')
res.end('文件读取失败')
} else {
res.setHeader('Content-Type', 'image/jpeg')
res.end(data)
}
})
}
})
4、绑定端口号,启动服务器
server.listen(3000, function () {
console.log("服务器启动成功");
});
结果: