从表单中保存mongodb集合信息的困难

时间:2016-07-02 04:40:41

标签: angularjs node.js mongodb

我正在尝试使用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);         
        }               
    });
});

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

我将不胜感激,

提前谢谢

2 个答案:

答案 0 :(得分:0)

尝试以下代码并检查:

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

答案 1 :(得分:0)

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