【发布时间】:2019-12-03 21:13:12
【问题描述】:
我是 nodeJS 的新手,简单的发布数据上传到 Mongo 失败。我的连接正常。如果我输入代码:
var itemOne = steTodo({task: 'something', date: 'something', status:
'something' }).save(function(err)
{
if(err) throw err;
console.log('Item saved');
});
这可以工作并插入一条记录。
但是,如果我尝试以这种方式上传发布的数据:
app.post('/', urlencodedParser, function(req, res)
{
res.render('index', {data: req.body});
console.log(req.body);
//get data from the view and add it to mongodb
var newSteTodo = steTodo(req.body).save(function(err, data)
{
if(err) throw err;
console.log("Item Saved" + req.body)
//res.json(data);
});
});
它失败并告诉我它未能将对象呈现为字符串。当我添加 JSON.stringify() 发布的对象时,它没有帮助。上面的 Console.log 将发布的对象输出为例如下面:
[Object: null prototype] {
task: 'hello',
date: 'Thu Jul 25 2019 14:55:42 GMT+0100 (Irish Standard Time)',
status: 'New' }
由于我是 Node 的新手,我确信我在做一些愚蠢的事情,感谢任何帮助。
【问题讨论】:
-
您收到的数据不是 JSON 格式。如果您使用的是 bodyParser 包,您可以简单地执行
bodyParser.json()将 incming 数据转换为 JSON -
感谢您的回复。我试过了: var jsonParsed = bodyParser.json(req.body);但我收到一条错误消息,提示“正文已解析”。我现在更困惑了:/
-
你的路由中的 urlencodedParser 是什么?
标签: node.js mongodb mongoose ejs