【问题标题】:Difficulties to save on a mongodb collection information from a Form从表单中保存 mongodb 集合信息的困难
【发布时间】:2016-07-04 12:20:42
【问题描述】:

我正在尝试使用 MEAN 堆栈创建应用程序。我正在使用 mongoose 作为我的 mongodb 数据库的架构。在一个包含字符串、数字和日期字段的集合上,我在尝试保存到数据库时遇到错误。用户输入的部分信息是数字和日期。这给了我一个错误,我注意到我从未保存它。问题:在我捕获表单中的信息后,我是否必须从 String 转换为 Number 并从 String 转换为 Date?如果是这样,我尝试将 Date.parse 转换为将 String 转换为 Date 和 parseInt 以覆盖从字符串到数字,如下所示:

    app.post('/api/show/post', authCheck, function(req, res) {
    console.log("Entrada a post");
    console.log(req.body);

    var ciaID = "     ";
    req.body.moveid = Date.parse(req.body.movein);
    req.body.open = Date.parse(req.body.open);
    req.body.close = Date.parse(req.body.close);

    req.body.number = parseInt(req.body.number);
    req.body.estimateamount = parseInt(req.body.estimateamount);
    req.body.balancedue = parseInt(req.body.balancedue);

    mongoose.model('company').findOne({name: "test company"},          function(err,doc){ 
        var ObjectID = require('mongodb').ObjectID;
            ciaID = new ObjectID(doc._id);  
    }); 

    var show = new Show(req.body);


    show.created_at = Date();
    show.updated_at = Date();
    show.created_by = "username";
    show.updated_by = "username"; 

    show.save(function(err, doc){

        if (err) {
        console.log(" the program all gets in here");   
           return err
        }
        else {

            res.status(201).json(doc);         
        }               
    });
});

我也尝试过不转换任何这些值,但在这两种情况下都不起作用。我有其他的集合,它只包含字符串字段,我没有任何问题。

我将不胜感激任何建议,

提前谢谢你

【问题讨论】:

  • 我认为,保存日期可能有问题,因为 mongodb 接受 ISO 日期格式,所以试试这个 var crtDate = new Date(); var dateToSave = crtDate.toISOString();
  • 感谢您的帮助。所以,我在这里看到的是您建议将数据库中的字段从日期更改为字符串。我说的对吗?
  • 如果您在保存数据时遇到问题,请发布您要保存的模型和最终展示对象。
  • 感谢您的跟进。由于您的上一篇文章,我发现了问题。有一个字段在 mongodb 和 mongoose 上定义为 Date,并且在表单中使用错误。猫鼬不会让我保存它以保持完整性。愚蠢的错误,真的很抱歉。再次感谢您的宝贵时间。

标签: angularjs node.js mongodb


【解决方案1】:

试试下面的代码并检查:

req.body.moveid = new Date(req.body.movein);
req.body.open = new Date(req.body.open);
req.body.close = new Date(req.body.close);

【讨论】:

  • 感谢您的建议。我试过了,还是不行
【解决方案2】:

感谢 rroxysam 跟进。由于您的上一篇文章,我发现了问题。有一个字段在 mongodb 和 mongoose 上定义为 Date,并且在表单中使用错误。猫鼬不会让我保存它以保持完整性。愚蠢的错误,真的很抱歉。再次感谢您的宝贵时间。

【讨论】:

    猜你喜欢
    • 2012-05-23
    • 1970-01-01
    • 2018-02-13
    • 2020-04-19
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多