小编Tyr*_*ion的帖子

Nodejs - 在明确4.9.0的帖子中未定义的Req.body

我是nodejs的初学者,我尝试使用中间件body-parse或者什么都不知道req.body,但是两者都发现req.body是未定义的.这是我的代码

var app = require('express')();         
var bodyParser = require('body-parser');
var multer = require('multer');         

app.get('/', function(req, res) {       
    res.send("Hello world!\n");         
});                                     

app.post('/module', function(req, res) {
    console.log(req);                   
    app.use(bodyParser.json());         
    app.use(bodyParser.urlencoded({     
        extended: true                  
    }));                                
    app.use(multer);                    
    console.log(req.body);              
});                                     

app.listen(3000);                       

module.exports = app;  
Run Code Online (Sandbox Code Playgroud)

我用命令curl -X POST -d 'test case' http://127.0.0.1:3000/module来测试它.

express的版本:4.9.0
node的版本:v0.10.33

请帮忙,谢谢.

javascript curl node.js express

6
推荐指数
2
解决办法
2万
查看次数

node express 中的 app.post 和 app.use 有什么不同?

我使用命令curl -H "Content-Type: application/json" -d '{"name":"sparc_core","port":["p1", "p2"]}' http://127.0.0.1:3000/add_module来测试 nodejs 服务器。

起初,我的代码如下:

app.post('/add_module', bodyParser.json()); 
app.post('/add_module', bodyParser.urlencoded());
app.post('/add_module', function(req, res, next) {
    req.body = JSON.parse(req.body.data);
    next();
});
app.post('/add_module', function(req, res) {
    console.log("Start submitting");
    console.log(req.body);
... ...
Run Code Online (Sandbox Code Playgroud)

运行 curl 命令后,节点服务器输出错误信息如下:

SyntaxError: 在 Object.app.post.res.send.error [作为句柄] (
/home/xtec/Documents/xtec-simict/sim/app.js:80:21) 的 Object.parse (native) 的意外标记 u 在 Route.dispatch (/home/xtec /Documents/xtec-simict/sim/ node_modules/express/lib/router/route.js:107:5) at /home/xtec/Documents/xtec-simict/sim/node_modules/express/lib/router/index.js:205:24 at Function.proto。 process_params (/home/xtec/Documents/xtec-simict/sim/node_modules/express/lib/router/index.js:269:12) 在下一个 (/home/xtec/Documents/xtec-simict/sim/node_modules/express /lib/router/index.js:199:19)






在 Object.urlencodedParser
[作为句柄] (/home/xtec/Documents/xtec- simict/sim/node_modules/body-parser/index.js:67:27)
在 next_layer (/home/xtec/Documents/xtec-simict/sim/node_modules/express/lib/router/route.js:103:13)
POST /add_module 500 7ms - 1021b

然后,我修改代码如下:

app.use(bodyParser.json()); …
Run Code Online (Sandbox Code Playgroud)

javascript curl node.js express

2
推荐指数
1
解决办法
3855
查看次数

标签 统计

curl ×2

express ×2

javascript ×2

node.js ×2