微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

提取API- res.json返回[object] [object]

如何解决提取API- res.json返回[object] [object]

我尝试了很多发现的解决方案,但是都没有成功。验证后,我正在获取 user 对象-

Login.jsx-

const login = async () => {
    const res = await fetch('http://localhost:8080/login',{
        method: 'POST',credentials: 'include',headers: {
            'Accept': 'application/json','Content-Type': 'application/json;charset=UTF-8'
        },body: JSON.stringify({
            username: username,password: password
        })
    });
        
    const data = await res.json();
    
    console.log('data: ' + data); // [object][object]
}

routes.js

const handleLoginPost = (req,res,next) => {
    passport.authenticate('local',(err,user) => {

        if(err) {
            console.log(err);
            res.status(404).json({err});
            return;
        }

        res.status(200).json(user);
        return;

    })(req,next);
}

router.post('/login',handleLoginPost);

当我使用res.text()代替res.json()时,它将返回一个字符串对象-

{"_id":"5f72cf2aa985f40488b2eb2b","username":"sapinder","email":"1@gmail.com","hash":"$2b$10$/7lYBHWP1Ed2VXXSIizyiOk.aujvbi2iRRrFxy6ufxu..S81oRl2u","__v":0}

这是一个字符串,因为在这种情况下typeof data返回String。我尝试了JSON.parse(data),但再次返回了[object][object]

提取 user 对象的正确方法是什么?

解决方法

更改此:

console.log('data: ' + data) 

对此

console.log('data: ',data) 

或对此:

console.log('data: ' + JSON.stringify(data)). 

您的console.log()触发了默认的数据字符串转换。在Javascript中,对象的默认字符串转换为[Object object],通常是无用的。您的数据在那里,只是您的console.log()代码在尝试输出时出错。

,

我不确定,但请尝试使用.then(data => console.log('data: ' + data))

,

尝试这个

const login = async () => {
    const res = await fetch('http://localhost:8080/login',{
        method: 'POST',credentials: 'include',headers: {
            'Accept': 'application/json','Content-Type': 'application/json;charset=UTF-8'
        },body: JSON.stringify({
            username: username,password: password
        })
    }).then((response) => {
    return response.json();
  }).catch((err)=>{
      console.log(err)
  });

  console.log("Res",res)
  return res;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。