node.js - 发布对象的猫鼬上传失败
问题描述
我是 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 的新手,我确信我在做一些愚蠢的事情,任何帮助表示赞赏。
解决方案
非常感谢 Shivam Sood 帮我调试这个,非常有帮助。原来只是我傻了。它实际上是在创建数据库记录。但是在上传之后它导致节点应用程序崩溃,这与console.log的格式有关。下面是使用 JSON.stringify 的解决方案
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" + JSON.stringify(req.body))
//res.json(data);
});
});
推荐阅读
- tfs - 查询“工作项和直接链接”上的共享字段
- php - 如何在 Laravel 中正确使用多个中间件
- dc.js - 无法使用过滤器正确同步 dcjs 图表和常规引导多选
- go - 外部程序能知道go程序中有多少个goroutine吗?
- angular - 如何使用来自异步数据流(可观察)的数据进行 API 调用?
- c++ - 与多个客户端的 C++ Socket 聊天
- python - 如何为 Excel 文件中的每个工作表创建多个 DataFrame?
- ios - 如何修复导航控制器中越界的 UIButtons?
- javascript - 如何在不使用道具的情况下将数据从父组件传递到子组件
- qt - 是否可以在 QML 中的 mouseX,mouseY 下获取任何子组件