Node.js 在swagger节点项目中使用异步中间件功能

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

我已经使用招摇过市节点生成了一个应用程序

自动招摇过市路由器无法识别带有异步前缀的控制器中间件功能。我必须在中间产品中使用承诺

有没有办法在swagger.yaml中列出的中间件中使用async?

在swagger.yaml中:

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。