我使用nodejs创建控制器和模型。当我尝试访问控制器内部的模型功能时。它的回归未定义。这是我的示例代码
var User = require('../models/user');
// Display list of all Authors.
exports.user_list = function(req, res) {
var allUsers = User.allUser();
console.log(allUsers); //It return undefined
res.render("../views/users/index", {title : 'Users Listing'});
};
var config = require('./../config');
var User = {
allUser: function () {
config.query("Select * from customer ", function (err, results, fields) {
return results;
});
}
};
module.exports = User
//Basic routing.
var express = require( 'express' );
var app = express();
var config = require('./config');
//Creating Router() object
var router = express.Router();
var user_controller = require('./controller/userController.js');
router.get('/users', user_controller.user_list);
//router.get('/users/:id/update', user_controller.user_detail);
app.set('view engine', 'ejs');
app.use("/",router);
/* app.use("*",function(req,res){
res.sendFile(__dirname + "/public/404.html");
}); */
// Listen to this Port
app.listen(3000,function(){
console.log("Live at Port 3000");
});
module.exports = router;
答案 0 :(得分:0)
因为您没有将回调参数传递给userController.js中的User.allUser()
调用
尝试这样称呼:
var allUsers = User.allUser(console.log);
它应该打印出你的结果。
答案 1 :(得分:0)
我认为你的命名是关闭的。
在userController.js文件中:var User = require('../ models / user');
但是,您的文件路径为:型号 /user.js
另外我假设基于代码userController.js位于控制器目录中。
yourproject
|-- controller
| `-- userController.js
|-- model
| `-- user.js
|-- config.js
|-- index.js
`-- package.json