gpt4 book ai didi

javascript - 使用 Hapi.js 框架的多个服务器实例

转载 作者:数据小太阳 更新时间:2023-10-29 04:38:38 25 4
gpt4 key购买 nike

出于几个原因,我正在接近这个 node.js 框架。简单、出色的模块化和开箱即用的快速配置。很快就遇到了我在express.js框架学习过程中从未见过的Pack这个概念。来自官方指南的以下示例:

var Good = require('good');

server.pack.register(Good, function (err) {
if (err) {
throw err; // something bad happened loading the plugin
}

server.start(function () {
server.log('info', 'Server running at: ' + server.info.uri);
});
});

他们对 Pack 说:

Packs are a way for hapi to combine multiple servers into a single unit, and are designed to give a unified interface when working with plugins.

这个概念对我来说很奇怪。我们在一个项目中使用不同的服务器多少次?另外我不清楚是否应该每次都调用 pack 在 hapi 中注册插件。

更新:这是 v8 之前的 api 代码,注册插件的方式已经改变。 (直接在server调用register)

最佳答案

This concept is weird for me. How many times do we work with different servers in a project?

一个例子是当你有一个 api 和一个网络服务器时。这些通常是单独开发的,通常在单独的存储库中。然后,您可以创建结合这些插件的第三个项目:

var Hapi = require('hapi');

var manifest = {
servers: [
{
host: 'localhost',
port: 8000,
options: {
labels: 'api',
cors: true
}
},
{
host: 'localhost',
port: 8001,
options: {
labels: 'web'
}
}
],
plugins: {
'./example-api': [{select: 'api'}],
'./example-web': [{select: 'web'}]
}
};

Hapi.Pack.compose(manifest, function(err, pack) {
pack.start();
});

In addition is not clear for me whether I should call ever time pack to register a plugins in hapi.

是的,您需要调用pack.register()当你想注册一个插件。但是,您可以一次注册更多插件:

plugin.register([
require('crumb'),
require('hapi-auth-cookie')
], function (err) {
// Error handling
}

关于javascript - 使用 Hapi.js 框架的多个服务器实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com