Express JS MongoDB menyebabkan Posmen menghantar permintaan tersekat
P粉448130258
P粉448130258 2024-03-30 10:41:07
0
1
413

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粉448130258
P粉448130258

membalas semua(1)
P粉101708623

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan