node day1 study
node.js 是什么
- node.js 是 JavaScript 运行在服务器时的环境
- 相当于将 Chrome 浏览器的
v8
引擎移植到服务器上, 使 JavaScript 成为一门全栈语言
- node 的优势:
- 可以读写服务器的文件
- 构建网络服务, 网络通信, HTTP 服务器
- node 使用事件驱动
(event-driven)
和 非阻塞 IO 模型(non-blocking)
, 支持异步操作, 常用来处理高并发事件
- 轻量和高效
- 拥有世界上最大的开源生态系统
npm
服务器文件读写模块 fs
1. 模块引用
var fs = require('fs')
2. 模块常用方法
- fs.readFile(path, callback(error, data))
- data 用来是二进制数据, 可以通过
toString ()
方法来转为可读字符串
- path 为文件路径
- fs.readdir(path, callback(err,data))
- 该方法可读取 path 所指的路径
- data 是 Array 型
http 模块
1. 模块引用
// 使用 require 引用 http 模块, 返回值为 http 对象
var http = require('http');
2. 服务器创建
// 通过此方法可创建服务器
var server = http.createServer();
3. 设置程序端口号
server.listen(3000,() => {
console.log('启动服务器成功, 可以通过 http://127.0.0.1:3000/ 进行访问');
})
4. 监听客户端请求并进行响应
server.on ('request', (request, response) => {
console.log('收到客户端的请求了');
// 可通过 request 对象判断请求的Url 和请求头等等
const url = request.url;
if (url == '/') {
// 利用setHeader 设置响应头信息, Content-Type: 用于说明响应内容的格式以及编码, 具体格式可查阅: https://tool.oschina.net/commons
response.setHeader('Content-Type', 'text/plain; charset=utf-8')
response.write('首页');
response.end('Hello NODE');
} else if (url == '/html') {
// 可利用 fs 模块的readFile 方法读取 .html 文件并发送给客户端
} else {
}
})