【问题标题】:How do I jsdoc parameters to web request?我如何将 jsdoc 参数发送到 Web 请求?
【发布时间】:2019-09-03 12:30:22
【问题描述】:

我有这样的功能(在 Node.js/Firebase 中),想知道如何以 JSDoc 格式添加文档:

exports.getUserRes = functions.https.onRequest(async (request, response) => {...}

如何将 GET/POST/etc 参数记录到request

【问题讨论】:

    标签: node.js firebase jsdoc


    【解决方案1】:

    我结合How to annotate Express middlewares with JSDoc?中的其他答案并修改了一些代码,
    它可以包括在express.Request 和事件自定义请求正文中定义的所有方法/属性。
    它不仅可以在request.body中使用,还可以在req.query中使用。
    那是因为express.Request 支持泛型,所以我们可以在 JSDOC 中使用它。

    首先,记得安装@types/expressnpm install --save-dev @types/express

    其次,设置如下代码。

    // @ts-check
    /**
     * @typedef {object} showRequestBody
     * @property {string} name this is name in request body
     * @property {number} age this is age in request body
     * 
     * @typedef {object} showRequestQuery
     * @property {string} name this is name in query
     * @property {number} age this is age in query
     * 
     * @param {import('express').Request<{}, {}, showRequestBody, showRequestQuery>} req
     * @param {import('express').Response} res 
     * @param {import('express').NextFunction} next 
     */
    exports.show = function(req, res, next) {
    };
    

    注意:我在 vscode 中使用它。


    express.Request 上定义的其他方法/属性,例如req.headers


    req.body提示


    req.query提示

    【讨论】:

      【解决方案2】:

      我刚刚发现了一个老问题,其答案似乎暗示了一个好方法。我的意思不是那里公认的答案,而是@Steven Spunkin 的答案:

      javascript - 如何使用 JSDoc 注释 Express 中间件? - 堆 溢出 How to annotate Express middlewares with JSDoc?

      为简单起见,我在这里复制他的答案。欢迎评论!

      /**
       * 
       * @module myMiddleware
       * @function
       * @param req {Object} The request.
       * @param res {Object} The response.
       * @param req.params.foo {String} The foo param.
       * @param req.query.bar {String} The bar query.
       * @param req.body {Object} The JSON payload.
       * @param {Function} next
       * @return {undefined}
       */
      function foo(req, res, next){ ... }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-25
        • 2015-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多