YAMLSemanticError:隐式映射键需要位于第 1 行第 1 列的单行上:尝试创建 Swagger 文档

Rev*_*van 8 mysql rest node.js swagger

这是我第一次实现 Swagger。我需要指导。我正在尝试在 REST api 中实现 swagger,但收到此错误

\n
PS D:\\node_apps\\testpdfgenerate> node index.js\nNot all input has been taken into account at your final specification.\nHere's the report:\n\n\n YAMLSemanticError: Implicit map keys need to be on a single line at line 1, column 1:\n\n/api/v1/listallstaff/:email\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\xe2\x80\xa6\n\nApp running on Port: 7000\n
Run Code Online (Sandbox Code Playgroud)\n

其余路线工作正常,但在 Swagger 中实现它,要创建文档,我收到上面的错误

\n

REST api 的完整代码如下所示。

\n
var express = require('express');\nvar app = express();\nvar bodyParser = require('body-parser');\nvar mysql = require('mysql');\nconst swaggerJSDoc = require('swagger-jsdoc');  \nconst swaggerUI = require('swagger-ui-express'); \n\n\nvar port = process.env.PORT || 7000;\n\n//evade cors\n\napp.use(function (req, res, next) {\n    res.setHeader('Access-Control-Allow-Origin', '*');\n    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');\n    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');\n    res.setHeader('Access-Control-Allow-Credentials', true);\n    next();\n });\n\n\napp.use(bodyParser.json());\napp.use(bodyParser.urlencoded({\n    extended:true\n}));\n\n\n//Swagger Configuration  \nconst swaggerOptions = {  \n    swaggerDefinition: {  \n        info: {  \n            title:'Employee API',  \n            version:'1.0.0'  \n        }  \n    },  \n    apis:['index.js'],  \n}  \nconst swaggerDocs = swaggerJSDoc(swaggerOptions);  \napp.use('/api-docs',swaggerUI.serve,swaggerUI.setup(swaggerDocs)); \n\napp.get('/api/',function(req , res){\n    return res.send({error: false,message: 'Pdf Generator example'})\n});\n\n\nvar dbConn = mysql.createPool({\n    host: 'localhost',\n    user: 'root',\n    password: '',\n    database: 'fakeppldbpdf'\n});\n\nmodule.exports = dbConn;\n\n/** \n * @swagger \n * /api/v1/listallstaff: \n *   get: \n *     description: Get all Employee \n *     responses:  \n *       200: \n *         description: Success  \n *   \n */ \n\napp.get('/api/v1/listallstaff',function(req,res){\n    dbConn.query('SELECT * FROM sobreppltable',function(error, results, fields){\n        if(error) throw error;\n        return res.send({ error: false, data: results, message: 'users list' });\n    })\n})\n\n/** \n * @swagger \n * /api/v1/listallstaff/:email\n *   get: \n *     description: Get all Employee by Email\n *     responses:  \n *       200: \n *         description: Success  \n *   \n */ \n\napp.get('/api/v1/listallstaff/:email',function(req,res){\n    let email = req.params.email;\n    dbConn.query('SELECT * FROM sobreppltable WHERE email =?', email,function(error, results, fields){\n        if(error) throw error;\n        return res.send({ error: false, data: results[0], message: 'users list' });\n    })\n})\n\n\n\napp.listen(port,function(){\n    console.log('App running on Port: '+port);\n});\n\nmodule.exports = app;\n
Run Code Online (Sandbox Code Playgroud)\n

我做错了什么?

\n

Rev*_*van 8

修复了添加的花括号

/** 
 * @swagger 
 * /api/v1/listallstaff/{email}:
 *   get: 
 *     description: Get all Employee by Email
 *     responses:  
 *       200: 
 *         description: Success  
 *   
 */ 
Run Code Online (Sandbox Code Playgroud)

解决了这个问题,以防像我这样的其他新手:)