Node.js Mongoose在传递给构造函数时不保存某些值
我有以下代码:Node.js Mongoose在传递给构造函数时不保存某些值,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有以下代码: app.get('/checkout', function (req, res, next) { var checkout = new Checkouts(); checkout.itemCode = req.query.itemCode; checkout.showDate = req.query.showDate; checkout.expectedReturn = req.query.expectedReturn } 我想通过将值传递到构造函数中来创建此代
app.get('/checkout', function (req, res, next) {
var checkout = new Checkouts();
checkout.itemCode = req.query.itemCode;
checkout.showDate = req.query.showDate;
checkout.expectedReturn = req.query.expectedReturn
}
我想通过将值传递到构造函数中来创建此代码的更紧凑版本。出于某种原因,当我尝试此代码时:
app.get('/checkout', function (req, res, next) {
var checkout = new Checkouts({
itemCode: req.query.itemCode,
showDate: req.query.showDate,
expectedReturn: req.query.expectedReturn
});
}
某些值,特别是itemCode,在我的数据库中始终作为空白对象被跳过,即使它在req.query中也是如此。即,顶层代码示例适用于每个项目,即使请求相同
知道为什么吗
这是结帐模式
这是服务器端代码
哪些日志:
{
expectedReturn: '0388-03-04T08:00:00.000Z',
itemCode: '102012', //Note that item code is here as a string
showDate: '0198-05-05T07:00:00.000Z'
}
string // Note that item code is a string and present
{ __v: 0,
expectedReturn: Fri Mar 04 388 00:00:00 GMT-0800 (PST),
_id: 54e39a909188007dd0ef683d,
showDate: {}, // Show date is blank
itemCode: {} // So is item code
}
您应该传递一个对象,请尝试以下操作:
app.get('/checkout', function (req, res, next) {
var checkout = new Checkouts({
itemCode: req.query.itemCode,
showDate: req.query.showDate,
expectedReturn: req.query.expectedReturn
});
}
您的架构必须是:
var checkoutSchema = new Schema({
itemCode: String,
showDate: String,
expectedReturn: Date
});
我不确定showDate。那个字段是什么意思?我想类型应该是布尔型的。有关更多信息,请参阅mongoose文档@。请向我们提供您的模式。模式中itemCode的数据类型是什么?req.query.itemCode中的数据类型是什么?@mosquito87,现在显示出来了。您的模式中的category:be-type:不应该吗?我想这就是答案……我不确定区别是什么。这与我的第二个示例有何不同?例如,不起作用的一个?使用赋值运算符而不是冒号
app.get('/checkout', function (req, res, next) {
var checkout = new Checkouts({
itemCode: req.query.itemCode,
showDate: req.query.showDate,
expectedReturn: req.query.expectedReturn
});
}
var checkoutSchema = new Schema({
itemCode: String,
showDate: String,
expectedReturn: Date
});