江湖急救:TypeError: Cannot read property 'findOne' of undefined
发布于 8 年前 作者 94007boy 8264 次浏览 来自 问答

不知道动了什么,突然之间,mongoose所有的操作数据库的方法,比如find,findOne等等,全部报错,错误都是: TypeError: Cannot read property ‘xxxx’ of undefined 字面上看我models文件夹下的数据模型,都获取不到了,都成了 undefined!

尼玛,我真的啥也没动啊,一下子就这样了,数据库全部无法操作了!! 代码如下:

var logger = require(’…/common/logger’); var Promise = require(‘bluebird’); var models = require(’…/models’); var CheckCode = models.CheckCode; var moment = require(‘moment’);

exports.checkIsExpired = function(mobile){ return CheckCode.findOne({mobile:mobile,expire_time:{$gt:moment().valueOf()}}).exec(); }; CheckCode 未定义!!!!!!!!!!! why???

models文件夹下index.js代码如下: var mongoose = require(‘mongoose’); var config = require(’…/config’); var logger = require(’…/common/logger’)

mongoose.connect(config.db, { server: {poolSize: 20} }, function (err) { if (err) { logger.error('connect to %s error: ', config.db, err.message); process.exit(1); } });

require(’./user_admin’); exports.CheckCode = mongoose.model(‘CheckCode’);

数据模型checkcode.js代码如下: var CheckCodeSchema = new Schema({ mobile:{type: String},//手机号 device_id:{type: String},//设备唯一标示 checkCode:{type: Number, default: 0 },//验证码 create_time: { type: Number, default:(moment().valueOf()) },//创建时间 expire_time: { type: Number, default:(moment().valueOf()) },//失效时间 is_use: { type: Boolean },//是否使用 using_time: { type: Number, default:(moment().valueOf()) }//使用时间 });

CheckCodeSchema.plugin(BaseModel); CheckCodeSchema.index({create_time: -1});

mongoose.model(‘CheckCode’, CheckCodeSchema);

版本信息: “express”: “4.13.4”, “mongoose”: “4.4.9”, “body-parser”: “1.15.0”,

12 回复

额 你最好把models下的index.js 和 CheckCode.js的代码也贴一下吧

@jiangli373 大神,我贴了!

这个问题一般情况下是没有连上数据库导致的。。。检查一下数据库是否启动,然后是否能正常连接mongodb。

@94007boy 是不是在index里面没有把CheckCode导出

require(’./checkcode’);
exports.CheckCode    = mongoose.model(‘CheckCode’);

@jiangli373 exports.CheckCode = mongoose.model(‘CheckCode’);

@94007boy

require(’./checkcode’);了吗

@94007boy 你这个引入路径是不是写错了

而且我也觉得你的model引入的有问题

回到顶部