众所周知,node.js是目前前端往中高级进阶的一项必备技能,之前学习vue2,只是用了他的打包工具webpack,并没有去深入研究。最近花心思去学习了一下,是我对前端整套流程有了进阶的认识。
我学习node是从视频开始的,大家可以看一下腾讯课堂的一个《Node.js 实战开发:博客系统》免费的,一共54节课,花了快两周跟着练习消化。视频地址:点这里.
node是一项可以操纵系统的一种服务器语言(个人理解),比如去读取系统里面的文件,就可用node内置的fs模块
//如果不是全局就得引入fs成员
const fs = require("fs");
//fs 核心模块中提供了一个 fs.readFile方法,来读取指定目录下的文件
//fs.resdFile 三个参数
// 1,读取文件的路径
// 2,读取文件的编码格式
// 3,当文件读取完成,调用这个callback回调函数来读取文件的结果
去读取D盘node路径下的aaa文本
fs.readFile("D:/node/aaa.txt", "utf-8", function(error, data) {
// 用error来判断文件是否读取成功
if (error){
console.log("读取文件失败,内容是" + error.message);
} else{
console.log("读取文件成功,内容是" + data);
}
});
比如去复制一个文件,就得先去读取那个文件,在将内容复制进去
//文件流复制
const url='D:/node/SICKO MODE.mp3';
//读取改路径文件下得音乐
fs.readFile(url,function(err,data){
if(!err){
console.log(data);
//将名字为数据写入SICKO MODE.mp3得文件中
fs.writeFile('SICKO MODE.mp3',data,function(err){
if(!err){
console.log('写入成功')
}
})
}
})
这样可以联系我们使用和利用模块js得能力。
下一个模块就是http模块,这个可以帮助我们开启一个服务,在浏览器输入相应端口就可以使用。
//引入http模块
var http = require("http");
//创建服务,端口为8090
http.createServer(function(req,res) {
res.writeHead(200,{
"content-type":"text/plain"
});
//在页面上返回文本
res.write("Hello NodeJs");
res.end();
}).listen(8090);
http模块中封装了一个HTTP服务器和一个简易的HTTP客户端:http.Server()用于创建是一个基于事件的HTTP服务器,而http.request()和http.get()可以作为客户端向HTTP服务器发起请求。在这里使用的createServer()方法返回了一个http.Server对象,text/plain的意思是将文件设置为纯文本格式。
http.ServerResponse类是返回给客户端的信息,它有三个重要的方法,用于返回响应头、响应内容以及结束请求:writeHead(statusCode[, statusMessage][,headers]):向请求的客户端发送响应头,该函数在一个请求中最多调用一次,如果不调用,则会自动生成一个响应头write(chunk[,encoding][,callback]):向请求的客户端发送响应内容,chunk是一个buffer或者字符串,如果chunk是字符串,则需要指定编码方式,默认为utf-8,在end()方法调用之前可以多次调用end([data][,encoding][,callback]):结束响应,告知客户端所有发送已经结束,如果不调用这个函数,客户端将一直处于等待状态
http.Server最常用的事件是"request",当接收到http请求时触发。在"request"事件中,传入回调函数的参数req和res分别是http.IncomingMessage和http.ServerResponse的实例:http.IncomingMessage类包含了从客户端发来的http请求信息,它可以用来访问响应状态、消息头、以及数据。