【问题标题】:how to use Form in swagger / Node.JS如何在 swagger / Node.JS 中使用 Form
【发布时间】:2022-01-04 07:42:32
【问题描述】:

我是使用 Swagger 的新手。所以我需要某种帮助。我正在尝试使用 swagger,比如加入我用 Node.JS 编写的 Rest api 在 Postman 上测试时,REST api 工作得非常完美,但我添加了 swagger 部分,并且 Swagger 上的表单无法正常工作。应该工作的表单数据部分工作不正常。

我的完整代码是这样的

var express = require('express');
var app = express();
const cors = require("cors");
var bodyParser = require('body-parser');
var mysql = require('mysql');
const swaggerJSDoc = require('swagger-jsdoc');  
const swaggerUI = require('swagger-ui-express'); 
var port = process.env.PORT || 7000;

const swaggerOptions = {  
    swaggerDefinition: {  
        info: {  
            title:'*****REST API',  
            version:'1.0.0'  
        }  
    },  
    apis:['***.js'],  
}

const swaggerDocs = swaggerJSDoc(swaggerOptions);  
app.use('/api-docs',swaggerUI.serve,swaggerUI.setup(swaggerDocs));  

//evade cors

app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    res.setHeader('Access-Control-Allow-Credentials', true);
    next();
});

app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));


app.get('/api/', function (req, res) {
    return res.send({ error: false, message: 'hello from api' })
});


var dbConn = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: '',
    database: '*****'
});

module.exports = dbConn;

//functions

/** 
 * @swagger 
 * /auth/register: 
 *   post: 
 *     description: Create new user 
 *     parameters: 
 *     - name: fullname 
 *     - name: user 
 *     - name: pass
 *     
 *       description: Create an new employee 
 *       in: formData 
 *       type: String 
 *     responses:  
 *       200: 
 *         description: Created  
 *   
 */

app.post('/auth/register', function (req, res) {
    var fullname = req.body.fullname;
    var user = req.body.user;
    var pass = req.body.pass;

    dbConn.query('INSERT INTO users (fullname, user, pass) VALUES (?,?,?)', [fullname, user, pass], function (error, results, fields) {
        if (error) throw error;
        return res.send({ error: false, data: results, message: 'Account Setup Complete' });
    })
})

/** 
 * @swagger 
 * /auth/login: 
 *   post: 
 *     description: Login User 
 *     parameters: 
 *     - name: user 
 *     - name: pass
 *     
 *       description: Login User 
 *       in: formData 
 *       type: String 
 *     responses:  
 *       200: 
 *         description: Login  
 *   
 */ 

app.post('/auth/login',function(req,res){
    var user = req.body.user;
    var pass = req.body.pass;

    dbConn.query('SELECT * FROM users WHERE user = ? AND pass =?', [user,pass], function (error, results, fields){
        if(results.length > 0){
            return res.send({error:false, message: 'OK'});
        }else{ 
            return res.send({error: true, message: 'Incrorrect Login Details'});
        }
    });
})



app.listen(port, function () {
    console.log('App running on Port: ' + port);
});

module.exports = app;

我做错了什么?有什么我需要正确输入的吗?

【问题讨论】:

  • 您遇到了什么问题?目前尚不清楚...但是,有一件事是您使用的是 cors 中间件,但还手动设置了 CORS 标头。不要那样做;相反,学习如何正确配置cors 模块中间件。
  • @jub0bs 我想从 swagger 文档中传递参数来向人们展示如何使用其余的 api

标签: mysql node.js rest swagger


【解决方案1】:

我设法修复它,设置这样的参数对我有用。

/** 
 * @swagger 
 * /auth/register: 
 *   post: 
 *     description: Create new user 
 *     parameters: 
 *     - name: fullname 
 *       description: fullname of user 
 *       in: formData 
 *       type: String 
 *     - name: user 
 *       description: userid of user 
 *       in: formData 
 *       type: String 
 *     - name: pass 
 *       description: pass of user 
 *       in: formData 
 *       type: String 
 *     responses:  
 *       200: 
 *         description: Created  
 *   
 */

【讨论】:

    猜你喜欢
    • 2020-11-08
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多