【发布时间】:2018-01-02 03:11:27
【问题描述】:
我正在向 node.js 侦听器发布一个 json 文件,但我不能完全理解 POST 是如何正确构造的,因为在下面的代码中,从未调用过 on('data') 回调。我可以在正文中看到实际的 json 字符串,因此我可以解决缺少回调的问题,但似乎我在生成 POST 请求的方式上做错了。 [邮递员详情如下]
// Server initialization
var server = restify.createServer();
server.use(restify.queryParser());
server.use(CookieParser.parse);
server.use(restify.bodyParser());
// Later, at the point where I register callbacks.
this.server.post('receive', function (request, respond) {
console.log('Received POST');
console.log("Headers: %s", JSON.stringify(request.headers));
console.log("Body: %s", JSON.stringify(request.body));
var body = '' ;
var filePath = './data/notes.json';
// this event is never triggered.
request.on('data', function (data) {
console.log('Data received.');
body += data;
});
request.on('end', function () {
console.log('End of POST');
fs.writeFile(filePath, body, function () {
respond.end();
});
});
});
发布详情: 我正在使用 Postman 创建一个 POST 请求,Content-Type: application/json 并将 json 字符串放入原始正文中。什么通常会触发 POST 请求中的“数据”事件?如果我忽略数据事件并仅从请求正文中读取,我会遇到问题吗?
【问题讨论】:
-
什么是
this.server我不认为http.createServer返回的对象有post方法。你在用express吗? -
我正在使用restify。我将把它添加到代码 sn-p 中。
标签: javascript json node.js http postman