HapiJS - 将控制器放置在路线中

时间:2016-04-16 19:26:50

标签: javascript node.js hapijs

Hapi对我来说是新事物,实际上我正在尝试为我的项目创建一个好的结构。

我有这个文件:routes / catalogs.js

"use strict";
const Boom = require('boom');
const uuid = require('node-uuid');
const Joi = require('joi');
exports.register = function(server, options, next) {
server.route({
    method: 'GET',
    path: '/catalogs',
    handler: function(request, reply) {
        var catalogs = server.app.mongodb.collection('catalogs');
        catalogs.find({}).toArray(function(err, docs) {
             reply(docs);
        });
    }
});
return next();
};
exports.register.attributes = {
name: 'routes-notifications'
}

但是将所有代码留在同一个文件中进行路由,我想将所有数据库任务的代码放在控制器中,类似于:https://github.com/agendor/sample-hapi-rest-api/blob/master/src/controllers/task.js

但我真的无法理解如何做到这一点,因为在这个例子中,数据库的库是非常不同的,这让我很烦。有人可以帮我转换我的控制器用于配置:{handler:?

ty!

1 个答案:

答案 0 :(得分:0)

如果您查看此file,它会显示如何破坏添加到hapi路由here的mongodb处理程序。该模块的目的是从json模式生成数据模型和方法。