我正在尝试使用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);
}
});
});
我也尝试过不转换任何这些值,并且两种情况都不起作用。我有其他集合,只包含字符串字段,我没有任何问题。
我将不胜感激,
提前谢谢
答案 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不会让我保存以保持诚信。愚蠢的错误,真的很抱歉。再次感谢你的时间。