Node.js 在swagger节点项目中使用异步中间件功能
我已经使用招摇过市节点生成了一个应用程序 自动招摇过市路由器无法识别带有异步前缀的控制器中间件功能。我必须在中间产品中使用承诺 有没有办法在swagger.yaml中列出的中间件中使用async? 在swagger.yaml中:Node.js 在swagger节点项目中使用异步中间件功能,node.js,express,async-await,swagger,Node.js,Express,Async Await,Swagger,我已经使用招摇过市节点生成了一个应用程序 自动招摇过市路由器无法识别带有异步前缀的控制器中间件功能。我必须在中间产品中使用承诺 有没有办法在swagger.yaml中列出的中间件中使用async? 在swagger.yaml中: paths: '/positions/{positionId}': x-swagger-router-controller: controller get: description: some description oper
paths:
'/positions/{positionId}':
x-swagger-router-controller: controller
get:
description: some description
operationId: getPosition
在controllers/controller.js中
module.exports.getPosition = function(request, response) {
const positionId = request.swagger.params.positionId.value;
try {
someModel.getPosition(positionId)
.then(function() {
return response.status(200).json();
})
.catch(function(error) {
return response.status(500).json();
});
} catch(error) {
return response.status(500).json();
}
};
我想写下:
module.exports.getPosition = async function(request, response) {
const positionId = request.swagger.params.positionId.value;
try {
await someModel.getPosition(positionId);
return response.status(200).json();
} catch(error) {
return response.status(500).json();
}
};
要使用wait,在创建函数时使用async,如下所示:
module.exports.getPosition=异步函数(请求、响应){
const positionId=request.swagger.params.positionId.value;
试一试{
等待someModel.getPosition(positionId);
返回response.status(200.json();
}捕获(错误){
返回response.status(500.json();
}
};代码>这是一个关于swagger节点运行程序
包的问题(请参阅):
他们需要更新他们的代码以使用最新的
发布招摇过市工具
我通过以下方式解决了这一问题:
首先,在项目中安装0.10.3
版本的swagger工具
:
npm install --save swagger-tools@0.10.3
然后,在node_modules/swagger node runner/package.json
文件中手动更改swagger node runner
的依赖项,如:
[...]
"dependencies": {
"bagpipes": "^0.0.6",
"config": "^1.16.0",
"cors": "^2.5.3",
"debug": "^2.1.3",
"js-yaml": "^3.3.0",
"lodash": "^3.6.0",
"swagger-tools": "^0.10.3"
},
[...]
感谢您指出缺少的async,尽管我特别询问在swagger节点中使用async Wait。