在路由文件 hapijs 中找不到控制器
Can't find controller in routes file hapijs
我对整个 Nodejs 世界还很陌生,我正在尝试使用 Hapi.js 创建一个简单的应用程序,让我自己从这里开始。无论如何,我已经通过这种方式设置了我的路由文件:
var usersController = require("./src/controllers/usersController.js");
exports.register = function(server, options, next) {
server.route([
{
method: 'POST',
path: '/register',
handler: usersController.register
},
]);
next();
};
exports.register.attributes = {
name: 'routes',
version: '0.0.1'
};
然后我有我的控制器
var Hapi = require('hapi');
var UserModel = require('./src/models/user.js');
function UsersController(){};
UsersController.prototype = (function(){
return {
register: function register(request, reply) {
var newUser = User({
name: request.params.name,
username: request.params.username,
password: request.params.password
});
newUser.save(function(err){
if (err) throw err;
console.log("You created a user, bruh");
})
},
}
})();
var usersController = new UsersController();
module.exports = usersController;
我从控制台得到的错误是 "Cannot find module ./src/controllers/usersController.js"。我什至试图在 require 中输入文件的绝对位置并得到同样的错误,所以我一定是在其他地方失败了。
提前致谢
路径是相对于文件的,而不是相对于项目根目录的。因此,例如在您的控制器中,您应该使用 '../models/user.js'
:
var UserModel = require('../models/user.js');
我对整个 Nodejs 世界还很陌生,我正在尝试使用 Hapi.js 创建一个简单的应用程序,让我自己从这里开始。无论如何,我已经通过这种方式设置了我的路由文件:
var usersController = require("./src/controllers/usersController.js");
exports.register = function(server, options, next) {
server.route([
{
method: 'POST',
path: '/register',
handler: usersController.register
},
]);
next();
};
exports.register.attributes = {
name: 'routes',
version: '0.0.1'
};
然后我有我的控制器
var Hapi = require('hapi');
var UserModel = require('./src/models/user.js');
function UsersController(){};
UsersController.prototype = (function(){
return {
register: function register(request, reply) {
var newUser = User({
name: request.params.name,
username: request.params.username,
password: request.params.password
});
newUser.save(function(err){
if (err) throw err;
console.log("You created a user, bruh");
})
},
}
})();
var usersController = new UsersController();
module.exports = usersController;
我从控制台得到的错误是 "Cannot find module ./src/controllers/usersController.js"。我什至试图在 require 中输入文件的绝对位置并得到同样的错误,所以我一定是在其他地方失败了。
提前致谢
路径是相对于文件的,而不是相对于项目根目录的。因此,例如在您的控制器中,您应该使用 '../models/user.js'
:
var UserModel = require('../models/user.js');