hapijs 路由调用中的函数 return 什么时候应该调用
when should a function return in hapijs route call
我有两个不同的示例,一个来自 makemehapi(某种互动课程),另一个来自 hapi.js 官方网站。第一个看起来像这样 -
var Hapi = require('hapi');
var server = new Hapi.Server();
server.connection({
host: 'localhost',
port: Number(process.argv[2] || 8080)
});
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
reply('Hello hapi');
}
});
server.start(function () {});
只需查看正在调用的 server.route 方法。处理程序有一个调用 reply(...);
而不是 return 的匿名函数。现在 hapijs 网站提到了以下调用:
server.route({
method: 'GET',
path:'/',
handler: function (request, reply) {
return reply('hello world');
}
});
这里我假设回复语句的值是 returned 并且示例的其余部分是相同的。那么这两种方法是一样的吗?调用 return 或不调用它在这里没有什么不同(我都执行过)但在其他情况下会重要吗?也许等式中也有某种形式的中间件,它们是我们不调用 return 的原因吗?
hapi 不使用您的处理程序中的 return 值(参见 the code)。您的 2 个样本在功能上是等效的。
那么为什么 return?
在调用回调时添加 return
(这就是 reply()
接口)只是一个很好的做法,它标志着您打算在该点停止执行函数。它可以防止任何人在该行之后添加要执行的代码。
- Callbacks should always be called with explicit return
对于这个简单的例子来说,这似乎毫无意义,但这是一个养成的好习惯。它可能会在更复杂的场景中挽救您的生命,确保回调仅被调用一次并使用正确的值。
查看这两个代码示例以了解我的意思:
错了!
const diffuseBomb = function (person, callback) {
if (person === 'james bond') {
callback('PHEW! We\'re saved!');
}
callback('BOOOM!');
};
diffuseBomb('james bond', (sound) => console.log(sound));
正确!
const diffuseBomb = function (person, callback) {
if (person === 'james bond') {
return callback('PHEW! We\'re saved!');
}
return callback('BOOOM!');
};
diffuseBomb('james bond', (sound) => console.log(sound));
我有两个不同的示例,一个来自 makemehapi(某种互动课程),另一个来自 hapi.js 官方网站。第一个看起来像这样 -
var Hapi = require('hapi');
var server = new Hapi.Server();
server.connection({
host: 'localhost',
port: Number(process.argv[2] || 8080)
});
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
reply('Hello hapi');
}
});
server.start(function () {});
只需查看正在调用的 server.route 方法。处理程序有一个调用 reply(...);
而不是 return 的匿名函数。现在 hapijs 网站提到了以下调用:
server.route({
method: 'GET',
path:'/',
handler: function (request, reply) {
return reply('hello world');
}
});
这里我假设回复语句的值是 returned 并且示例的其余部分是相同的。那么这两种方法是一样的吗?调用 return 或不调用它在这里没有什么不同(我都执行过)但在其他情况下会重要吗?也许等式中也有某种形式的中间件,它们是我们不调用 return 的原因吗?
hapi 不使用您的处理程序中的 return 值(参见 the code)。您的 2 个样本在功能上是等效的。
那么为什么 return?
在调用回调时添加 return
(这就是 reply()
接口)只是一个很好的做法,它标志着您打算在该点停止执行函数。它可以防止任何人在该行之后添加要执行的代码。
- Callbacks should always be called with explicit return
对于这个简单的例子来说,这似乎毫无意义,但这是一个养成的好习惯。它可能会在更复杂的场景中挽救您的生命,确保回调仅被调用一次并使用正确的值。
查看这两个代码示例以了解我的意思:
错了!
const diffuseBomb = function (person, callback) {
if (person === 'james bond') {
callback('PHEW! We\'re saved!');
}
callback('BOOOM!');
};
diffuseBomb('james bond', (sound) => console.log(sound));
正确!
const diffuseBomb = function (person, callback) {
if (person === 'james bond') {
return callback('PHEW! We\'re saved!');
}
return callback('BOOOM!');
};
diffuseBomb('james bond', (sound) => console.log(sound));