Hapi 服务器方法与 server.app.doSomething
Hapi server methods vs server.app.doSomething
我正在写一个 hapi js 插件,想知道其他插件可以使用的两种公开方法的区别是什么。
方法一:
server.method("doSomething",
function () {
// Something
});
方法二:
server.app.doSomething = function () {
// Something
};
在第一种方法中,该函数稍后可以调用为 server.doSomething(),而使用第二种方法为 server.app.doSomething()。
那么为什么我要使用一种方式而不是另一种方式呢?
查看 API 文档,听起来他们打算 server.methods
用于函数,server.app
用于应用程序 settings/configuration。我的猜测是,如果您想公开要在插件中使用的服务器级方法,您应该坚持使用 server.method。
server.methods
An object providing access to the server methods where each server
method name is an object property.
var Hapi = require('hapi');
var server = new Hapi.Server();
server.method('add', function (a, b, next) {
return next(null, a + b);
});
server.methods.add(1, 2, function (err, result) {
// result === 3
});
server.app
Provides a safe place to store server-specific run-time application
data without potential conflicts with the framework internals. The
data can be accessed whenever the server is accessible. Initialized
with an empty object.
var Hapi = require('hapi');
server = new Hapi.Server();
server.app.key = 'value';
var handler = function (request, reply) {
return reply(request.server.app.key);
};
我正在写一个 hapi js 插件,想知道其他插件可以使用的两种公开方法的区别是什么。
方法一:
server.method("doSomething",
function () {
// Something
});
方法二:
server.app.doSomething = function () {
// Something
};
在第一种方法中,该函数稍后可以调用为 server.doSomething(),而使用第二种方法为 server.app.doSomething()。
那么为什么我要使用一种方式而不是另一种方式呢?
查看 API 文档,听起来他们打算 server.methods
用于函数,server.app
用于应用程序 settings/configuration。我的猜测是,如果您想公开要在插件中使用的服务器级方法,您应该坚持使用 server.method。
server.methods
An object providing access to the server methods where each server method name is an object property.
var Hapi = require('hapi'); var server = new Hapi.Server(); server.method('add', function (a, b, next) { return next(null, a + b); }); server.methods.add(1, 2, function (err, result) { // result === 3 });
server.app
Provides a safe place to store server-specific run-time application data without potential conflicts with the framework internals. The data can be accessed whenever the server is accessible. Initialized with an empty object.
var Hapi = require('hapi'); server = new Hapi.Server(); server.app.key = 'value'; var handler = function (request, reply) { return reply(request.server.app.key); };