初学nodejs 浏览器发送过得txt文件中文无法正常解析 已设置utf8
客户端使用 FormData 发送的 txt文件
const http = require("http");
const fs = require('fs')
const serve = http.createServer((req, res) => {
const fswrite = fs.createWriteStream('./真实简历.txt', {
flags: 'a+',
encoding: 'utf8'
})
res.setHeader("Content-Type", "application/json;charset=utf-8");
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers", "*");
res.setHeader("Access-Control-Allow-Methods", "*");
// 格式
req.setEncoding('UTF-8')
let fff = ''
// 接收 文件信息
req.on('data', (data) => {
console.log('data', data.toString());
console.log('data', data);
fff += data
// 持续写入
fswrite.write(data)
})
req.on('end',() => {
fswrite.close()
})
res.end(JSON.stringify({ A: 123 }));
});
serve.listen(8000, () => {
console.log("服务器已经启动 http://127.0.0.1:5500");
});
打印结果
我想知道怎么正确解析里面的中文
请注意,上面的数据是被包装在multipart/form-data格式中的,因此需要使用第三方库解析该格式。
可以使用以下代码解析文件:
const multer = require('multer');
const storage = multer.memoryStorage();
const upload = multer({ storage: storage });
// 解析 multipart/form-data
app.post('/file', upload.single('a'), (req, res) => {
const file = req.file;
console.log(file.buffer.toString('utf-8'));
res.send(file.buffer.toString('utf-8'));
});
这段代码需要安装multer库,可以在命令行使用npm install multer安装。