首页 > 解决方案 > 发布对象的猫鼬上传失败

问题描述

我是 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 的新手,我确信我在做一些愚蠢的事情,任何帮助表示赞赏。

标签: node.jsmongodbmongooseejs

解决方案


非常感谢 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);
       });
    });

推荐阅读