use*_*911 3 node-modules hapijs
刚开始熟悉Hapi.Hapi使用插件为您的应用程序添加组件.我很难理解为什么我会使用插件,当我可以做以下事情:
var lib = require('whatever lib from npm');
Run Code Online (Sandbox Code Playgroud)
两者有什么不同?
Hapi插件也是节点模块,但它们是根据Hapi插件API构建的节点模块(它们公开了一个注册方法,用Hapi包/服务器注册插件)
插件可以自动向您的服务器添加路由,更改请求,有效负载和响应,并且通常可以更改Hapi的行为方式.
所以简而言之,插件是专门为增强Hapi而编写的Node模块.
让我们看看两个包lout和Lo-Dash.
Lo-Dash你可能知道的模块是高性能的js工具集.
lout是一个Hapi插件,它将为您的应用添加/ doc路由.你可以在npm找到它们,让我们开始lout-
var Hapi = require('hapi'),
lout = require('lout'),
server = new Hapi.Server(80);
server.pack.register({
plugin: lout
}, function() {
server.start();
}
);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我们需要做的就是将lout注册到我们的服务器包中,并且我们可以使用它的所有魔法(一些插件需要更多选项)
现在让lodash我们在代码中使用
var Hapi = require('hapi'),
lout = require('lout'),
_ = require('lodash'),
preset = { app: { name: "myApp"}},
server;
if (process.env.DEBUG) {
_.extend(preset, {debug: {request: ['error']});
}
server = new Hapi.Server(80, preset);
_.extend(preset, { endpoint: '/lout'});
server.pack.register({
plugin: lout
}, function() {
server.start();
}
);
Run Code Online (Sandbox Code Playgroud)
这里我们lodash用来扩展我们的服务器设置并配置我们的服务器,如果我们在运行服务器时设置DEBUG环境参数,则将错误记录到控制台.请注意,lodash我们不知道我们的Hapi服务器及其工作方式,它只是用作帮助程序,程序员需要知道如何将它们拼接在一起.
调用lodash与server.pack.register将没有任何意义,并会导致错误.所以这不会工作 -
server.pack.register({
plugin: require('lodash')
}, function() {
server.start();
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1714 次 |
| 最近记录: |