当使用mongoose.model()获取错误时TypeError:无法读取属性' test'未定义的

时间:2016-06-26 20:13:12

标签: node.js mongodb mongoose mean-stack

这是我的架构

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var test = new Schema({
    name : {
       type : String,
       require : true,
       sparse : true
    },
    description : {
       type : String
    },
    questions : {
       type : [Schema.Types.ObjectId],
       sparse : true
    }  }); 
    module.exports = new mongoose.model('test', test);

当我尝试执行时,它给出了如下错误:

TypeError: Cannot read property 'test' of undefined
at new Mongoose.model (/home/utkarsh/Desktop/MEAN_REST_user_management/node_modules/mongoose/lib/index.js:329:25)
at Object.<anonymous> (/home/utkarsh/Desktop/MEAN_REST_user_management/app/models/test.js:19:18)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/utkarsh/Desktop/MEAN_REST_user_management/app/routes/test.js:6:13)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)

我之前使用过相同的格式,效果很好。不知道为什么它不起作用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

改变这个:

module.exports = new mongoose.model('test', test);

对此:

module.exports = mongoose.model('test', test);

mongoose.model()不是一个类,所以你不应该实例化它(使用new)。