express后端和fetch前端的json数据传递

  在使用express做后端,前端使用fetch API来请求后端时,一般都是用 JSON 数据进行通信的。 下面是一个简单的例子:

 

前端

        if (up) {
            var passwordAgain = this.state.passwordAgain;

            postObj.passwordAgain = passwordAgain;

            console.log('注册', userName, password, passwordAgain)

            fetch("/register", {
                method: "POST",
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                },
                body: `userName=${postObj.userName}&password=${postObj.password}&passwordAgain=${postObj.passwordAgain}`
            }).then(function(res) {
                return res.json();
            }).then(function (data) {
                console.log(data)
            });
        } 

 

  这里的前端使用的是react,前端使用fetch来请求,由于fetch支持promise方式,所以使用then进行链式调用。

  发送json数据,这里使用的是es6的模板字符串进行拼接的。 这样发送的数据就符合表单的形式了。

  第一步:接收到res并将其通过 return res.json() 转化为 json数据。

  第二步:然后接着调用then就可以得到json数据了 。 

 

后端:router.post('/register', function (req, res) {

    console.log('注册传给后台的数据', req.body.userName, req.body.password, req.body.passwordAgain)

    if (req.body.password == req.body.passwordAgain) {
        var newUser = new User({
            name: req.body.userName,
            password: req.body.password
        });
        // 如果符合条件,就注册该用户,将数据保存在数据库。
        newUser.save(function (err, user) {
            if (err) {
                console.log(err)
            } else {
 
var response = {

                     code: 200,
                     message: "用户注册成功!"
                   }
                  res.json(response);

            }
        });
        console.log('注册成功')
    } else {
        console.log('注册失败')
    }
});

  后端返回的很简单,就是直接在符合条件的情况下使用 res.json() 来传递json了,其中的值是一个对象,res.json() 会自动将至转化为json字符串并返回给前端。 

 

 

参考文章: https://stackoverflow.com/questions/29775797/fetch-post-json-data

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值