Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongoose在传递给构造函数时不保存某些值_Node.js_Mongodb_Mongoose - Fatal编程技术网

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
});