Node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
1. 基础知识
在 NodeJS 中,一般将代码合理拆分到不同的 JS 文件中,每一个文件就是一个模块,而文件路径就是模块名。在编写每个模块时,都有 require、exports、module 三个预先定义好的变量可供使用(CommonJS 规范)。
// require - 在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。
var foo1 = require('./foo');
var foo2 = require('./foo.js');// exports - 当前模块的导出对象,用于导出模块公有方法和属性。
// module - 通过 module 对象可以访问到当前模块的一些相关信息,但最多的用途是替换当前模块的导出对象。
const newModule = {
add: (a, b) => a + b
}
module.exports = newModule;2. 网络模块
2.1 Http 模块
const http = require('http')
const server = http.createServer(function (req, res) {
res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"}); //插入响应头
if (req.url === '/index.html') {
res.write('This is demo.')
} else {
res.write('404')
}
res.end();
});
server.listen(3000, function () {
console.log('服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问')
});2.2 URL 模块(解析 URL)
2.3 多进程
3. 文件模块
3.1 fs 模块
检测是文件还是目录 - fs.stat
创建目录 - fs.mkdir
写文件 - fs.writeFile
读文件 - fs.readFile
toString():buffer转换成字符串
toJSON():buffer转化成Json
追加文件 - fs.appendFile (如果没有文件则会生成文件,相当于创建文件)
读取目录 - fs.readdir
重命名 - fs.rename
删除目录 - fs.rmdir
删除文件 - fs.unlink
管道流(大文件一般都是用流)
3.2 zlib 模块(压缩包)
4. Express 框架
4.1 快速入门
安装
生成器工具 express-generator 快速创建一个应用的骨架
路由
静态文件读取
4.2 路由
格式: app.METHOD(path, [callback...], callback)
响应对象(res)的方法向客户端返回响应:
res.download()
提示下载文件。
res.end()
终结响应处理流程。
res.json()
发送一个 JSON 格式的响应。
res.jsonp()
发送一个支持 JSONP 的 JSON 格式的响应。
res.redirect()
重定向请求。
res.render()
渲染视图模板。
res.send()
发送各种类型的响应。
res.sendFile()
以八位字节流的形式发送文件。
res.sendStatus()
设置响应状态代码,并将其以字符串形式作为响应体的一部分发送。
链式路由:
模块化路由的写法
4.3 中间件Middleware
Express 本身就是由路由和中间件构成一个的 web 开发框架,中间件可以访问请求对象、响应对象和next变量,(不知道是否可以简单理解为回调函数),其功能包括功能包括:
执行任何代码。
修改请求和响应对象。
终结请求-响应循环。
调用堆栈中的下一个中间件。
应用级中间件:绑定到 app 对象使用 app.use() 和 app.METHOD():
路由级中间件:绑定的对象为 express.Router():
错误处理中间件:使用 4 个参数(err, req, res, next):
第三方中间件(以解析 cookie 的中间件 cookie-parser 为例):
最后更新于
这有帮助吗?