Node.js nodejs中swagger jsdoc设置的语法错误

Node.js nodejs中swagger jsdoc设置的语法错误,node.js,express,swagger,swagger-ui,swagger-jsdocs,Node.js,Express,Swagger,Swagger Ui,Swagger Jsdocs,我在尝试使用我的express应用程序设置swagger时遇到语法错误 我试图按照这个教程在这里作为一个快速入门指南,我不知道为什么我会得到这个错误 这是我的app.js import 'regenerator-runtime/runtime'; import express from 'express'; import bodyParser from 'body-parser'; import cors from 'cors'; import swaggerUI from 'swagger-u

我在尝试使用我的express应用程序设置swagger时遇到语法错误

我试图按照这个教程在这里作为一个快速入门指南,我不知道为什么我会得到这个错误

这是我的app.js

import 'regenerator-runtime/runtime';
import express from 'express';
import bodyParser from 'body-parser';
import cors from 'cors';
import swaggerUI from 'swagger-ui-express';
import swaggerJSDocs from 'swagger-jsdoc';
import allRoutes from './routes';


const definitions = {
  info: {
    // API information (required)
    title: 'Wayfarer', // Title (required)
    version: '1.0.0', // Version (required)
  },
  securityDefinitions: {
    bearerAuth: {
      type: 'apiKey',
      name: 'Authorization',
      scheme: 'bearer',
      in: 'header',
    },
  },
};

const options = {
  definitions,
  apis: ['./routes/index.js'],
};

const swaggerSpec = swaggerJSDocs(options);

const app = express();

app.get('/swagger.json', (req, res) => {
  res.setHeader('Content-Type', 'application/json');
  res.send(swaggerSpec);
});
app.use('/api-docs', swaggerUI.serve, swaggerUI.setup(swaggerSpec));
app.use(cors());
app.use(bodyParser.urlencoded({
  extended: true,
}));
app.use(bodyParser.json());

allRoutes(app);

export default app;
下面是我在
/routes/index.js

import userRouter from './users';
import busRouter from './buses';
import tripRouter from './trips';

const versionNumber = '/api/v1';

export default (app) => {
  app.use(versionNumber, userRouter);
  app.use(versionNumber, busRouter);
  app.use(versionNumber, tripRouter);
};
和其中一个路由,例如
/routes/users

import router from './router';
import userMiddleware from '../middleware/users';

router.post('/auth/signup', userMiddleware.signupClients(), userController.signUp.bind(userController));

router.post('/auth/signin', userMiddleware.signinClients(), userController.signinClients.bind(userController));

router.post('/auth/signin/admin', userMiddleware.signinAdmin(), userController.signinAdmin.bind(userController));

export default router;
我按照说明操作,我的应用程序应该可以运行,但我在位置0处得到了一个
错误:SyntaxError:JSON中的意外标记u
在module.exports(/home/frank/Desktop/Web Dev/Git projects/Way Farer/node_modules/swagger jsdoc/lib/index.js:32:11)

反对。(/home/frank/Desktop/Web Dev/Git projects/Way Farer/api/src/app.js:32:21)
错误

在app.js中,将
定义
(复数)更改为
定义
(单数)。swagger jsdoc要求将包含API定义的选项命名为
options.swagger定义
options.definition

const definition = {  // <-----
  ...
};

const options = {
  definition,      // <-----
  apis: ['./routes/index.js'],
};

const definition={//1)app.js中的第32行是哪一行?2)可能不相关,但您需要从app.js中的
securityDefinitions
中删除
scheme:'bearer'
。这是一个OpenAPI 3.0关键字,而您的API定义语法似乎是OpenAPI 2.0。app.js中的第32行是
const-swaggerSpec=swaggerJSDocs(选项);
。让我试试你的建议。删除
方案:“承载人”
并没有解决问题哇,这终于奏效了,我从来没有想过这只是一个特定的变量/属性。可以开始评论/记录我的API了,再次感谢