提问者:小点点

当我将表单发布到特定api时,如何获得响应


我已经制作了一个api来获取数据并将其保存到mongo db中

null

const userDB = require('./model/user')

app.post ('/signup', function (req, res){
    userDB.find({username: req.body.username}).
    then (result=>{
        if (result.length == 0) {
            bcrypt.hash(req.body.password, 10, function (err, hash){
                if (err) {
                    res.status(404).json ({
                        message : err
                    })
                }else{
                    const user = new userDB ({
                        username: req.body.username,
                        password: hash
                    })
                    user.save().
                    then(result =>{
                        res.status(200).json({
                            message : 'user had been created'
                        })
                    }).
                    catch(err=>{
                        res.status(404).json({
                            message : err
                        })
                    })
                }
            })
        }else{
            res.status(200).json({
                message : 'user already exist'
            })
        }
    }).
    catch(err=>{
        res.status(404).json ({
            message : err
        })
    })
})

null

并制作了一个html注册表单,将注册信息发布到api

如何在客户端接收api响应,发出操作成功与否的警报


共2个答案

匿名用户

如果希望从节点api向发送请求的客户机返回响应,只需在api中使用res.send

res.send(**your data**)

然后,在您的客户端中,只需等待响应或使用。然后

匿名用户

这完全取决于您在客户端使用了什么,如果您使用的是vanilla JavaScript:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    // register success
  }
  if (this.readyState == 4 && this.status == 404) {
    // register failure
  }
};
xhttp.open("POST", "/signup", true);
xhttp.send();

您应该考虑使用适当的状态代码,404表示页面找不到,这显然不是真的。在您的情况下,500(内部服务器错误)似乎是正确的,因为您使用了404。