我正在学习node.js,课程说下面的代码片段有问题。
const fs = require('fs');
const http = require('http');
const server = http.createServer((req, res) => {
if (req.headers['x-secret'] != process.env.SECRET )
res.writeHead(403).end('Secret incorrect');
let body = [];
req.on('data', chunk => {
body.push(chunk);
});
req.on('end', () => {
body = JSON.parse(Buffer.concat(body).toString());
fs.writeFileSync(body.filename, body.file);
res.writeHead(200).end('OK');
});
});
server.listen(7654);
我发现的可能情况包括:
- 应该使用https而不是http(安全服务器)
- Res.writeHead.end是无效语法。Res.writeHead和res.end
应单独编写
- 应使用fs.writeFile(),而不是异步版本
- 没有内置故障保护(?)
然而,这门课似乎在说,有一个大错误,我真的找不到。
救命啊!
谢啦,谢啦
1条答案
按热度按时间bihw5rsg1#
Buffer.concat(body).toString()
不是有效的JSON,因此您无法解析它。如果您记录它,您将收到什么像这样