node-modules之hapi.js 插件和 nodejs 模块有什么区别
刚开始熟悉 Hapi。 Hapi 使用插件将组件添加到您的应用程序。我很难理解为什么我会在我可以做类似的事情时使用插件:
var lib = require('whatever lib from npm');
两者有什么区别?
请您参考如下方法:
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();
}
);
如您所见,我们需要做的就是在我们的服务器包中注册 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();
}
);
这里我们使用 lodash 来扩展我们的服务器设置,并配置我们的服务器在运行服务器时设置 DEBUG 环境参数时将错误记录到控制台。 请注意,lodash 不知道我们的 Hapi 服务器及其工作原理,它只是用作帮助程序,程序员需要知道如何将它们拼接在一起。
使用 server.pack.register 调用 lodash 将没有任何意义,并且会导致错误。 所以这行不通-
server.pack.register({
plugin: require('lodash')
}, function() {
server.start();
}
);
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



