我正在编写一个hapi js插件,并且想知道公开其他插件可以使用的方法的两种方式之间的区别。
方法1:
server.method("doSomething",
function () {
// Something
});
方法2:
server.app.doSomething = function () {
// Something
};
在第一种方法中,该函数以后可以称为server.doSomething(),而在第二种方法中,该函数用作server.app.doSomething()。
那么,为什么我要用一种方法代替另一种方法呢?
看一下API文档,听起来好像它们打算server.methods
用于功能以及server.app
用于应用程序设置/配置。我的猜测是,如果您想公开要在插件中使用的服务器级方法,则应该坚持使用server.method。
服务器方法
提供对服务器方法的访问的对象,其中每个服务器方法名称都是一个对象属性。
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
提供一个安全的位置来存储服务器特定的运行时应用程序数据,而不会与框架内部发生潜在冲突。只要可访问服务器,就可以访问数据。用空对象初始化。
var Hapi = require('hapi'); server = new Hapi.Server(); server.app.key = 'value'; var handler = function (request, reply) { return reply(request.server.app.key); };
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句