我有类似这样的函数(在Node.js/Firebase中),想知道如何在JSDoc格式中添加文档:
exports.getUserRes = functions.https.onRequest(async (request, response) => {...}
我应该如何记录GET/POST等参数到请求中的
request
中?我结合了如何使用JSDoc注释Express中间件?中的其他答案并修改了一些代码,
它可以包括在express.Request
上定义的所有方法/属性和自定义请求体。
它不仅可以在request.body
中使用,还支持在req.query
中使用。
这是因为express.Request
支持通用类型,所以我们可以在JSDOC中使用它。
首先,请记得使用npm install --save-dev @types/express
安装@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
提示
为了简单起见,我在这里复制了他的答案。欢迎评论!javascript - 如何使用JSDoc注释Express中间件?-堆栈 溢出 如何使用JSDoc注释Express中间件?
/**
*
* @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){ ... }