当我没有将 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 语句之外
首先,您将 JSON 作为查询参数传递给 API,这不是一个好主意。
并且在代码中,您应该使用 else 语句考虑并处理
corner
条件。else
语句没有if(response == null)
语句。并且还处理err
条件。尝试添加打印
userInfo.username
和userInfo.password
并在此处添加屏幕截图(如果问题未解决)。