im试图构建一个Web应用程序,并使用nodeJS和mongoose(以及其他模块)。模块依赖性看起来像这样Image showing project heirarchy
我有一个Accessor.js模块,基本上所有东西都放在一起并相互绑定,因此例如说猫鼬对象需要由所有模型共享,所有这些绑定和依赖关系都在这里处理。
这就是我的Accessor.js文件的样子
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myapp');
var userModel = new require('../models/User.js')(mongoose);
var userController = new require('../controllers/UserController.js')(userModel);
console.log('USERCONTROLLER '+userController); //this shows value to be undefined
module.exports = {
getUserController : function(){
console.log("RETURNING USERCONTROLLER : "+ userController);
return userController;
}
};
我注释掉了显示UserController对象的值的行 未定义
这是我的UserController.js文件的外观
var UserController = function(userModel)
{
this.userModel = userModel;
}
UserController.prototype.getUsersCount = function(){
return userModel.getUsersCount();
}
UserController.prototype.isUsernameAvailable = function(username){
...
...
};
module.exports = UserController;
我试图在互联网上寻找可能由于该问题而导致的问题,一些帖子建议循环依赖性可能导致此类问题,但事实并非如此。我什至尝试了不同的方法在UserController.js中作为对象和构造函数对象来实现它,但对我来说没有用,请帮助:)
答案 0 :(得分:0)
您忘了在require语句中使用括号。
已更正:
var userController = new (require('../controllers/UserController.js'))(userModel);