无效的路由选项 ( ) "value" 必须是一个对象 - Hapi.js/Node.js
Invalid route options ( ) "value" must be an object - Hapi.js/Node.js
我正在使用 Hapi 和 Node 创建一个 REST-API。我试图按照这些人 () 的方法将我的路线放在单独的文件中。但是使用下面的代码我得到这个错误:Invalid route options ( ) "value" must be an object
.
我有一个 user.js
我的路线:
import { UserController } from "../../controllers/user.js";
const baseUrl = '/api/v1';
const userController = new UserController();
export class UserRoutes {
user() {
return [
{
method: 'GET',
path: baseUrl + '/users',
config: {
handler: (request, response) => {
return userController.find(request, response);
}
}
},
{
method: 'GET',
path: baseUrl + '/user/{user_id}',
config: {
handler: UserController.findById
}
},
];
}
}
和index.js
在同一文件夹中,应该将其他路由文件(我目前没有)合并到一个路由数组中:
import { UserRoutes } from './user.js';
export class Routes {
getRoutes() {
return [].concat(UserRoutes);
}
}
并在根 index.js
中使用它,如下所示:
import {Routes} from './src/routes/v1/index.js';
let routes = new Routes();
server.route(routes.getRoutes());
我做错了什么吗?我也像在上面提到的另一个 Stack Overflow 线程中一样尝试了 CommonJS - 但同样的错误。
终于找到错误的原因了。我想要 return [].concat(UserRoutes);
中的 Class UserRoutes 到 return 内部方法的值应该 return... 在此处插入 facepalm。首先,我必须使 class 失效,然后调用该方法……一如既往……
routes/index.js
getRoutes() {
let userRoutes = new UserRoutes();
return [].concat(userRoutes.user());
}
在我的例子中,我得到了这个错误,因为我有一个 post 路线的测试文件,我忘记在文件名中添加规范,所以请确保你的文件命名是正确的
我正在使用 Hapi 和 Node 创建一个 REST-API。我试图按照这些人 (Invalid route options ( ) "value" must be an object
.
我有一个 user.js
我的路线:
import { UserController } from "../../controllers/user.js";
const baseUrl = '/api/v1';
const userController = new UserController();
export class UserRoutes {
user() {
return [
{
method: 'GET',
path: baseUrl + '/users',
config: {
handler: (request, response) => {
return userController.find(request, response);
}
}
},
{
method: 'GET',
path: baseUrl + '/user/{user_id}',
config: {
handler: UserController.findById
}
},
];
}
}
和index.js
在同一文件夹中,应该将其他路由文件(我目前没有)合并到一个路由数组中:
import { UserRoutes } from './user.js';
export class Routes {
getRoutes() {
return [].concat(UserRoutes);
}
}
并在根 index.js
中使用它,如下所示:
import {Routes} from './src/routes/v1/index.js';
let routes = new Routes();
server.route(routes.getRoutes());
我做错了什么吗?我也像在上面提到的另一个 Stack Overflow 线程中一样尝试了 CommonJS - 但同样的错误。
终于找到错误的原因了。我想要 return [].concat(UserRoutes);
中的 Class UserRoutes 到 return 内部方法的值应该 return... 在此处插入 facepalm。首先,我必须使 class 失效,然后调用该方法……一如既往……
routes/index.js
getRoutes() {
let userRoutes = new UserRoutes();
return [].concat(userRoutes.user());
}
在我的例子中,我得到了这个错误,因为我有一个 post 路线的测试文件,我忘记在文件名中添加规范,所以请确保你的文件命名是正确的