无效的路由选项 ( ) "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 路线的测试文件,我忘记在文件名中添加规范,所以请确保你的文件命名是正确的