我正在使用localhost MongoDB。当我运行节点app.js时
该时间显示连接到服务器。当时我要在邮递员中测试API时遇到诸如userDetails.findAll
之类的错误不是函数。
Model.js:
const mongoose = require('mongoose');
const Schema =mongoose.Schema;
const userSchema=new Schema({
userId:{
type:String,
required:true
},
userName:
{
type:String,
required: true,
unique: true
},
userPwd:
{
type:String,
required:true
},
is_active:{
type:Boolean,
required:true
}
});
module.exports = mongoose.model("usersDetails",userSchema);
controller.js:
var userDetails = require('../userDetailsModels/userDetails-model');
var getUserDetails = (req, res) => {
userDetails.findAll({
where: {
is_active:true
}
}).then(userAll => {
res.status(200).json(userAll);
}).catch(err => {
console.log(err);
res.status(500).json({
error: err,
message: 'Something went wrong'
});
});
};
module.exports ={
getUserDetails:getUserDetails
}
router.js:
var express = require('express');
var usersRouter = express.Router();
var UserDetailsController = require('../userDetailsControllers/userDetails-controller');
usersRouter.route('/getUsers/all').get(UserDetailsController.getUserDetails);
module.exports = usersRouter;
以上是model.js,controller.js和router.js,我不知道我在这段代码中犯了什么错误。每次获取userDetails.findAll都不是一个函数。
答案 0 :(得分:1)
您应该提到mongoose
版本。
请从here的猫鼬文档站点检查可用的方法。
而且,请检查如何使用here中的where
:
没有像
findAll
这样的可用方法。
您可以使用find
方法,该方法将返回所有匹配的文档,如下所示:
userDetails.find().where('is_active').equals(true)
.exec(function(error, userAll) {
if(error){
res.status(500).json({
error: err,
message: 'Something went wrong'
});
} else {
res.status(200).json(userAll);
}
});
希望这可能对您有帮助.. !!