我有一个客户端正在向我的node.js服务器发送数据块.
我想听"结束"事件并检索累积的请求正文.
这是我的代码:
app.post('/users', function(req, res){
req.on('end', function() { // WHY IS THIS NEVER FIRED?
console.log(req.body);
res.send({
"status": "ok"
});
});
});
Run Code Online (Sandbox Code Playgroud)
问题是'end'事件永远不会被触发.
谁知道为什么?
另外,如果我这样做,那么req.body是否是所有身体块的累积体?
基本上,http POST 仅在您 POST 到服务器时才会触发。我不能确定,但我假设您只是尝试server:port/users在网络浏览器中访问,但未能获得响应。默认情况下,Web 浏览器正在GET连接服务器。要解决此问题,您有两种选择。
1.如果更改app.post为app.get访问时事件将正确触发/users
2. 或者您可以使用表单触发 post 函数。例如,如果您使用 访问页面,以下代码将显示一个表单GET。当您提交表单时,它将触发POST。
var express = require('express'),
app = express.createServer();
app.listen(1337, "127.0.0.1");
app.get('/users',function(req,res){
res.send('<form method="post" action="/users"><input type="submit" value="Submit" /></form>');
})
app.post('/users', function(req, res){
req.on('end', function() {
console.log('success');
res.send('success!!!');
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5165 次 |
| 最近记录: |