如果满足某些条件,如何命名一个调用回调的函数?

时间:2013-07-15 19:48:15

标签: node.js naming-conventions

我最近开始使用nodejs。我想遵循它的 async 性质并编写一些辅助函数,它们将一个函数作为参数,并且仅在满足某些条件时才调用该函数,例如:

function areMandatoryFieldsFilledOut( fields, httpRequest, httpResponse, callback ) {
    /* some logic */
    if( mandatory_fields_have_been_filled_out ) {
        callback();
    } else {
        httpResponse.send('Mandatory fields have not been filled out!');
    }
}
// usage
areMandatoryFieldsFilledOut(['username', 'password'], req, res, function () {
    // this is executed only if both username and password values are supplied
}

编写此类函数的最佳方法是什么?是否有一个特殊的单词用于函数名称的开头,例如'ensure',例如“ensureAuthenticated( callback )? 有没有办法让读者相信我的代码只有在通过函数声明(name和args)满足条件时才会调用回调?

2 个答案:

答案 0 :(得分:0)

此内容的现有术语包括connect的{​​{1}} / express名称或middleware的{​​{1}}名称。我使用快速中间件,它具有非常相似的模式,但加上有序的Ruby on Rails函数,在这种情况下,我将这些函数命名为没有任何特定的约定,除了试图清楚他们做什么,检查或要求

before_filter

如果我想明确指出这是stackapp.post('/submit', signedIn, authorized, formIsValid, function (req, res) { /*...code to process form.../*}); 等中间件,有时我会将MW添加到最后。

答案 1 :(得分:0)

我认为你看错了。这不是需要澄清的函数名,而是callback参数。我会改用以下函数签名:

checkMandatoryFieldsFilledOut(
        fields,
        httpRequest,
        httpResponse,
        filled_out_callback
)

或者,如果该参数名称感觉太长,我会使用ok_callback。如果有必要,我还会给他们一个可选的fail_callback,以防调用者在条件失败时需要进行一些处理:

checkMandatoryFieldsFilledOut(
        fields,
        httpRequest,
        httpResponse,
        ok_callback,
        fail_callback  /* optional */
)