文件读取
- 导入
fs
模块
const fs = require('fs')
- 调用
fs.readFile
方法读取文件
参数:文件名, 编码格式,回调函数(err, data)
- 如果读取成功,
err
为 null - 如果读取失败,
err
为 错误对象, data 为 undefined
fs.readFile('./files/test.txt', 'utf8', function(err, data){
if(err) throw err;
console.log(data);
})
Promise 封装文件读取 fs
模块
const fs = require('fs');
let p = new Promise((resolve, reject) => {
fs.readFile('./files/test.txt', 'utf8', (err, data) => {
if(err) reject(err);
resolve(data);
});
});
p.then(value => {
console.log(value.toString());
}, reason =>{
console.log(reason);
})
文件写入
-
导入
fs
模块 -
调用
fs.writeFile()
方法
参数:写入文件名,写入的内容,回调函数
- 如果写入成功,err 为 null
- 写入失败,err 为错误对象
fa.writeFile('./files/test.txt', 'write data test', function(err){
if(err) return err.message;
console.log('write success!')
})
路径问题和文件名与后缀
__dirname
表示当前文件所处的目录
引入 path 模块
const path = require('path')
path.join()
可以拼接路径
结合使用:../
会抵消前面的路径
path.join(__dirname, './files/1.txt', ...,...)
获取文件名:
const fullName = path.basename('/a/b/c/d/index.html')
// fullName = 'index.html'
去掉后缀:
const nameWithoutExt = path.basename('/a/b/c/d/index.html', '.html')
// nameWithoutExt = 'index'
获取文件后缀:
const fileExt = path.extname('/a/b/c/d/index.html');
// fileExt = '.html'
http
模块创建服务器
使用 http
模块的 createServer()
函数创建 web 服务器实例
// 1.导入http模块
const http = require('http');
// 2. 创建 web 服务器实例
const server = http.createServer()
// 3. 为服务器绑定 request 事件,监听客户端请求
server.on('request', function(req, res){
console.log('Someone visit my web server!')
});
// 4. 启动服务器
server.listen(8080, function(){
console.log('server running at http://127.0.0.1:8080');
})
req
请求对象
req
是客户端的请求对象,包含了与客户端相关的数据和属性
req.url
是客户端请求的地址
req.method
是客户端请求的 method 类型
res.end(数据)
方法,向客户端响应数据
const http = require('http');
const server = http.createServer();
server.on('request', function(req, res) => {
const url = req.url;
const method = req.method;
const str = `你的请求 url 是${url}, 请求的类型是:${method}`;
res.end(str);
});
server.listen(8080, funtion(){
console.log('server running at http://127.0.0.1:8080');
})
中文乱码
设置响应头:
server.on('request', (req, res) => {
// 定义一个字符串,包含中文的内容
const str = `您请求的 URL 地址是 ${req.url},请求的 method 类型为 ${req.method}`
//调用 res.setHeader() 方法,设置 Content-Type 响应头,解决中文乱码的问题
res.setHeader('Content-Type', 'text/html; charset=utf-8')
// res.end() 将内容响应给客户端
res.end(str)
})