javascript - 无效的路由选项()“值”必须是一个对象 - Hapi.js/Node.js
问题描述
我正在使用 Hapi 和 Node 创建一个 REST-API。我正在尝试按照这些人(How to store routes in separate files when using Hapi?)方法将我的路线放在单独的文件中。但是使用下面的代码我得到了这个错误: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());
难道我做错了什么?我也尝试了 CommonJS,就像我在上面提到的另一个 Stack Overflow 线程中一样 - 但同样的错误。
解决方案
终于找到了错误的原因。我希望 UserRoutes 类return [].concat(UserRoutes);
返回内部方法应返回的值...在此处插入 facepalm。首先,我必须启动类,然后调用该方法.. 总是...
routes/index.js
getRoutes() {
let userRoutes = new UserRoutes();
return [].concat(userRoutes.user());
}
推荐阅读
- javascript - 显示来自状态的输入值
- jestjs - Jest-js Puppetter 等待 puppeteer 启动 newPage 返回未定义
- reactjs - Jest 遇到了意外的令牌 SyntaxError: Unexpected token {
- mysql - 选择记录不在记录集中
- json - 来自 django 查询的带有 json 的 Highcharts 未呈现
- javascript - set NODE_ENV=test 导致 jest 单元测试失败
- react-native - 导航到新页面
- php - Laravel 中的时间自定义输入
- scala - Lagom Scala 中用于提醒的服务器端代码
- wso2 - 如何获取 XML 有效负载属性