首页  >  问答  >  正文

Express JS MongoDB导致Postman发送请求卡住

当我没有将 res.status(200).json({message: "success", status: true}); 放在 if 语句之外时,邮差卡在发送请求上

var express = require('express');
    var app = express();
    var bodyParser = require('body-parser');
    var multer = require('multer');
    var upload = multer();
    var cookieParser = require('cookie-parser');
    var mongoose = require('mongoose');
    app.set('view engine', 'pug');
    app.set('views', 'views');
    app.use(express.json());
    app.use(bodyParser.json( { extended: true} ));
    app.use(bodyParser.urlencoded({extended: true }));
    app.use(upload.array());
    app.use(cookieParser());

    mongoose.set('strictQuery', true);

    mongoose.connect('mongodb://127.0.0.1:27017/my_db',
    {
        useNewUrlParser: true,
        useUnifiedTopology: true
    },(err) => {
        if(err){
            
        }else{
            console.log("connected");
        }
    }
    );

    var userSchema = mongoose.Schema({
        username: {type: String, required: true, index: { unique: true }},
        password: {type: String, required: true}
    });


    var User = mongoose.model("User", userSchema);

    app.post('/signup', (req, res) => {
    
        var userInfo = req.query;

        if(!userInfo.username || !userInfo.password ){
            res.status("400");
            res.send("Invalid Details");
        }else {
            const newUser = new User({
                username: userInfo.username,
                password: userInfo.password
            });

            
            User.findOne({username: userInfo.username} , (err, response) => {
                if(response == null){
                    newUser.save().then( ()=> {
                        res.status(200).json({ message: 'Success!', status: true});
                        // res.status(200).end();
                    }).catch( error => {
                        res.status(400).json({message: err, status: false});
                        console.log("existing user");
                    });
                }
                //res.status(200).json({message: "success", status: true});
            });
        }
    });

    app.listen(3000);

如何停止“then”部分或catch上的代码,我想捕获结果并将其显示在前端。当我没有放置 res.status(200).json({message: "success", status: true}); 时,邮差卡在发送请求上在 if 语句之外

P粉448130258P粉448130258186 天前295

全部回复(1)我来回复

  • P粉101708623

    P粉1017086232024-03-31 09:40:33

    首先,您将 JSON 作为查询参数传递给 API,这不是一个好主意。
    并且在代码中,您应该使用 else 语句考虑并处理 corner 条件。

    else 语句没有 if(response == null) 语句。并且还处理 err 条件。

    尝试添加打印 userInfo.usernameuserInfo.password 并在此处添加屏幕截图(如果问题未解决)。

    回复
    0
  • 取消回复