【问题标题】:Invalid route options ( ) "value" must be an object - Hapi.js/Node.js无效的路由选项()“值”必须是一个对象 - Hapi.js/Node.js
【发布时间】:2020-12-21 16:04:15
【问题描述】:

我正在使用 Hapi 和 Node.js 创建一个 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 线程中一样 - 但同样的错误。

【问题讨论】:

    标签: javascript node.js rest hapi


    【解决方案1】:

    终于找到了错误的原因。我希望return [].concat(UserRoutes); 中的 UserRoutes 类返回内部方法应返回的值...在此处插入 facepalm。首先我必须实例化该类,然后调用该方法..一如既往...

    routes/index.js

        getRoutes() {
            let userRoutes = new UserRoutes();
    
            return [].concat(userRoutes.user());
        }
    

    【讨论】:

      猜你喜欢
      • 2018-05-30
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      相关资源
      最近更新 更多