Node.js的基本使用
Node.js的基本使用
Vscode中的Node.js代码提示插件: npm install –save-dev @types/node
1. Node客户端与服务端JS的区别:
浏览器JS部分: 变量、运算符、流程控制、数据类型、DOM、BOM
服务端node.js只有一个部分: ECMAScript
在node.js中不能执行DOM、BOM
js
1 | // 使用node环境下的node命令来执行代码 tab键补全 |
2 .模块化开发思想
- 将大文件拆分为小文件, 然后用特定语法组合在一起
- 好处: 1.用什么引入什么 2.避免变量污染 一个文件就是独立的作用域
- 业务分离: 不同功能在不同文件, 便于维护
4. 模块化语法有两种
3. Commonjs模块化语法: 只有两个
1. 文件导出
- 模块化语法有缓存机制, 不会重复导入对象
js
1 | // module.exports = {属性名: 属性值} |
2. 文件模块导入
js
1 | // let 模块名 = require('文件路径') |
4. FS读写模块
1. 导入fs模块-fs在node.js中
js
1 | let fs = require('fs') |
2. 读取文件 readFile
- 参数1: path 文件路径
- 参数2: encoding 文件默认十六进制 使用中文utf8
- 参数3: (err错误信息, data文件数据/buffer数据流对象)
js
1 | fs.readFile('./txt/1.txt', 'utf8', (err, data) => { |
3. 写入文件 writeFile
- 参数1: 文件路径
- 参数2: 要写入的数据
- 参数3: 文件编码 默认是本身数据格式
- 参数4: err => {}
js
1 | fs.writeFile('./txt/1.txt', '你好啊', err => { |
5. Path模块: 处理文件路径
1. 导入path模块–拼接路径
js
1 | let path = require('path') |
2. 使用模块
js
1 | // 1. 获取文件扩展名 告诉你文件是什么格式 extname |
6. Http服务器模块: 用于搭建服务器
1. 导入http模块
js
1 | let http = require('http') |
2. 创建服务器 createSecureServer
- 参数: 请求报文 响应报文
- url中遇到中文则会变成URI编码 用decodeURI解析出来
- 想实现不同路径响应不同数据 先判断url 根据不同url响应不同数据
- end方法: 结束本次响应 返回响应体
- 服务器响应中文 浏览器会乱码 在响应头设置数据格式来解决
- 用plain最小字体显示 html为默认大小
js
1 | let app = http.createServer((request, response) => { |
3. 运行服务器
- 参数1: port端口号 系统为区分上网软件 每个软件会分配编号 (1-65535范围 3000以内会被系统占用)
- 参数2: hostname主机名 (ip地址)
- 参数3: 运行成功回调 () => {}
- ip省略不写默认为 127.0.0.1 只能本机访问
js
1 | app.listen('3000', '192.168.0.103', () => { |
7. Http模块响应Html文件
导入http模块
创建服务器 createSecureServer
运行服务器
这里主要创建服务器, 其他都一样
- 使用fs模块读取文件响应给浏览器 用dirname获取文件路径
- 判断成功则响应文件数据
js
1 | let app = http.createServer((req, res) => { |
8. 使用Http、FS、Path模块渲染网页
1. 导入http模块 fs模块
js
1 | let http = require('http') |
2. 创建服务器
- 断url 并使用fs模块读取文件 判断文件并响应文件
- 根据请求的url拼接读取对应文件的路径并返回
js
1 | let app = http.createServer((req, res) => { |
3. 开启服务器
js
1 | app.listen('3000', '192.168.0.103', () => { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小城故事!