cari

Rumah  >  Soal Jawab  >  teks badan

Express JS MongoDB menyebabkan Posmen menghantar permintaan tersekat

Apabila saya tidak meletakkan res.status(200).json({message: "success", status: true}); di luar penyata if, Posmen buntu menghantar permintaan

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);

Bagaimana untuk menghentikan kod pada bahagian "kemudian" atau tangkap, saya ingin menangkap hasilnya dan memaparkannya di bahagian hadapan. Posmen tersekat semasa menghantar permintaan apabila saya tidak meletakkan res.status(200).json({message: "success", status: true});

P粉448130258P粉448130258267 hari yang lalu414

membalas semua(1)saya akan balas

  • P粉101708623

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

    Pertama sekali, anda menghantar JSON sebagai parameter pertanyaan kepada API, yang bukan idea yang baik.
    Dan dalam kod anda, anda harus mempertimbangkan dan mengendalikan keadaan corner menggunakan pernyataan lain.

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

    Cuba tambah cetakan userInfo.usernameuserInfo.password dan tambahkan tangkapan skrin di sini jika isu itu tidak diselesaikan.

    balas
    0
  • Batalbalas