Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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
Javascript 无法读取属性';计数';未定义的expressapi的定义_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 无法读取属性';计数';未定义的expressapi的定义

Javascript 无法读取属性';计数';未定义的expressapi的定义,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,当我调用创建选项api时,它工作正常,但当我调用列表api时,出现错误:无法读取未定义的Express(Node+MongoDB)api的属性“count”。这是我的选项控制器文件代码。 我有Log DB.ProductDoption,正在获取结果,但计数函数不工作 const=require('lodash'); const-Joi=需要(“Joi”); exports.create=async(请求、恢复、下一步)=>{ 试一试{ const validateSchema=Joi.objec

当我调用创建选项api时,它工作正常,但当我调用列表api时,出现错误:无法读取未定义的Express(Node+MongoDB)api的属性“count”。这是我的选项控制器文件代码。 我有Log DB.ProductDoption,正在获取结果,但计数函数不工作

const=require('lodash');
const-Joi=需要(“Joi”);
exports.create=async(请求、恢复、下一步)=>{
试一试{
const validateSchema=Joi.object().keys({
名称:Joi.string().required(),
关键字:Joi.string().required(),
描述:Joi.string().allow(['',null])。可选(),
选项:Joi.array().items(Joi.object().keys({
关键字:Joi.string().required(),
displayText:Joi.string().required()
})).required()
});
const validate=Joi.validate(请求主体,validateSchema);
if(validate.error){
返回next(PopulateResponse.validationError(validate.error));
}
const key=Helper.String.createAlias(req.body.key);
console.log(DB.ProductDoption);
const count=await DB.ProductDoption.count({key});
如果(count | | validate.value.key==='\u custom'){
返回下一个(PopulateResponse.error({
消息:“请为密钥添加唯一名称”
}));
}
const option=new DB.ProductDoption(validate.value);
等待选项。保存();
res.locals.option=选项;
返回next();
}捕获(e){
返回下一个(e);
}
};
exports.list=异步(请求、恢复、下一步)=>{
const page=Math.max(0,req.query.page-1)| | 0;//使用基于零的页面索引与skip()一起使用
const take=parseInt(req.query.take,10)| 10;
试一试{
const query=Helper.App.populateDbQuery(req.query{
文本:[“名称”、“关键字”、“说明”]
});
const sort=Helper.App.populateDBSort(请求查询);
const count=wait DB.ProductDoption.count(查询);
const items=await DB.ProductDoption.find(查询)
.collation({locale:'en'})
.sort(排序).跳过(第*页)
.限制(采取)
.exec();
res.locals.optionList={
计数
项目
};
next();
}捕获(e){
其次(e);
}
};

collection.count已弃用,并将在将来的版本中删除。改为使用Collection.countDocuments或Collection.estimatedDocumentCount

看起来像是
DB.ProductDoption
不存在我的插入数据函数工作正常插入到哪里?您的代码不建议有任何插入。在
const sort=Helper.App.populateDBSort(req.query)
之前,运行以下代码
console.log(DB.ProductDoption)
并仔细检查输出。我已经更新了代码检查它,这里创建的函数工作正常,但列出了获取此错误的函数提供了完整的错误堆栈跟踪,堆栈跟踪将告诉您发生问题的代码行。