gpt4 book ai didi

node.js - 类型错误 : Body is undefined and cannot read property

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:58 26 4
gpt4 key购买 nike

我正在使用 Node 和 postgres 创建一个 Restful API。我目前正在创建一个 POST 函数,但遇到了一些问题。现在,我正在尝试测试我的功能,但遇到了似乎未定义的请求正文。

 57 function createAction(req, res) { 
58 pool.connect(function(err,client,done) {
59 if(err){
60 console.log("Not able to get connection "+ err + "\n");
61 res.status(400).send(err);
62 }
63
64 req.body.otherKey = parseInt(req.body.otherKey); // ERROR HERE
65 client.query('INSERT INTO acts(dateDone, completed, otherKey)'
66 + 'values(${dateDone}, ${completed}, ${otherKey})',
67 req.body, function(err,res) {
68
69 done();
70 if(err){
71 console.log(err);
72 res.status(400).send(err);
73 }
74
75 res.status(200);
76 console.log("Successfully created new action");
77 });
78 });
79 }

我正在使用以下代码对其进行测试:

curl -d "dateDone=testPOST&completed=f&otherKey=100" http://127.0.0.1:3000/api/actions

错误信息如下:

TypeError: Cannot read property 'otherKey' of undefined

最佳答案

req.body 未定义,因为“body”未解析。使用中间件 body-parser https://www.npmjs.com/package/body-parser

或者您可以手动定义包装器。

function postWrapper(req, res, cb) {
req.on('data', function(data) {
if (!req.body) {
req.body = '';
}
req.body += data.toString();
});
req.on('end', function() {
cb(req, res);
});
}

然后:

function createAction(req, res) {
postWrapper(req, res, function(req, res){
// your code
}
}

关于node.js - 类型错误 : Body is undefined and cannot read property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49000755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com