Node.js实践与总结
什么是nodejs特点
commonjs规范AMD规范和commonJS模块化
http模块fs模块stream
支持cookie安装插件命令
什么是nodejs
node.js就是js,是js服务端运行环境runtime,只是借助于Chrome V8引擎,实现js后端编程。 任何一台电脑都可以作为服务器。
注:浏览器是js的前端运行环境runtime
特点
nodejs适用于 I/O 密集型操作,不适用于CPU密集型操作(大量计算)
单线程非阻塞 I/O
访问文件网络请求数据库查询键盘/鼠标交互 事件驱动
commonjs规范
nodejs遵循commonjs规范
AMD规范和commonJS
1.相同点:都是为了模块化。
2.不同点:AMD规范则是非同步加载模块,允许指定回调函数。CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。
模块化
解决js变量污染(多个js文件之间,存在的变量名)的问题,一个文件就是一个模块
模块引入 导入node_modules目录下的文件文件夹 require()
引入流程
流程一:
当作文件处理(.js 或 .json 或 .node)当作文件夹处理
先找package.json 里面的main对应文件没有main,找index.js || json都没有,报错
流程二:
先找内置模块非内置,找第三方模块都没有,报错
模块导出
module.exports = {} 按需导出exports.module = modulemodule.exports. = exports
exports 是 module.exports 的引用,
http模块
构建服务 MIME 参考手册
// 构建服务对象
// 内置模块的导入不需要写相对路径,直接写模块名称
const http = require("http")
const server = http.createServer((req, res) => {
// 中文配置
// res.write()支持程度低;res.send()对参数支持程度比较高。
res.setHeader("content-type","text/html;charset=utf-8")
// write和send相比,send对数据格式兼容性更好
res.write("你好 nodejs")
res.send("你好 nodejs")
res.end("1")
})
// 服务对象监听端口
server.listen(3000)
启动服务 终端输入(index.js是构建服务对象所在的文件名)
node index.js
页面输出 访问 localhost:3000
hello nodejs
fs模块
const fs = require("fs")
// 文件内容一次性全部读取到内存,然后返回
const content = fs.readFileSync("./index.html")
stream
// 流读取,是一个data事件的集合,读取大文件常用
const readStream = fs.createReadStream("./detail.html")
readStream.pipe(res)
支持cookie
npm install cookie
安装插件命令
// 全局安装
npm i 插件名 -g
// 开发模式安装
npm i 插件名 -D