javascript – 如何注释快速中间件与JSDoc?

我试图记录一个Express中间件,但WebStorm中的内置验证工具告诉我,类型在以下JSDoc块中不正确分配:

/**
 * My middleware.
 *
 * @param {Object} req
 * @param {Object} res
 * @param {Function} next
 * @return {Object}
 */
exports.show = function(req, res, next) {
    ...
};

在Express源代码中,我没有找到任何@typedefs来帮助我。此外,我想避免像@param {*}。

使用JSDoc记录Express中间件的正确方法是什么?感谢任何帮助。

首先,我们同意中间件是函数;通常不需要特殊类型声明。除此之外,中间件往往是高度解耦模块化的,这意味着@module标签通常是适用的(当你运行jsdoc时,这有很好的后果)。

/**
 * Description of my middleware.
 * @module myMiddleware
 * @function
 * @param {Object} req - Express request object
 * @param {Object} res - Express response object
 * @param {Function} next - Express next middleware function
 * @return {undefined}
 */

根据您的样式指南,返回标记是可选的,因为中间件不返回值。最后,与Nick和mmm声称的相反,下一个参数是一个函数。

07000

Middleware functions are functions that have access to the request
object (req), the response object (res), and the next middleware
function in the application’s request-response cycle. The next middleware function is commonly denoted by a variable named next.

下一个不是一个花哨的快递内部控制; Express通过每个中间件函数的请求,响应和堆栈中的下一个中间件函数,如下所示:

mw1 = function(req, res, next){}.bind(undefined, req, res, mw2)
mw2 = function(req, res, next){}.bind(undefined, req, res, mw3)

mw1的取值范围为mw2。

http://stackoverflow.com/questions/27266857/how-to-annotate-express-middlewares-with-jsdoc

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 如何注释快速中间件与JSDoc?