當我沒有將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粉1017086232024-03-31 09:40:33
首先,您將 JSON 作為查詢參數傳遞給 API,這不是一個好主意。
並且在程式碼中,您應該使用 else 語句來考慮並處理 corner
條件。
else
語句沒有 if(response == null)
語句。並且也處理 err
條件。
嘗試新增列印 userInfo.username
和 userInfo.password
並在此處新增螢幕截圖(如果問題未解決)。