首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据从数据库映射到JS中的对象数组

将数据从数据库映射到JS中的对象数组
EN

Stack Overflow用户
提问于 2022-07-13 08:17:31
回答 2查看 50关注 0票数 0

我在App.js中有这段代码

代码语言:javascript
运行
复制
const getPlayers = async()=>{
  const players = await API.getPlayers();
  setPlayers(players)
}
getPlayers()

这段代码在我的API.js文件中

代码语言:javascript
运行
复制
const getPlayers = async () => {
  return getJson(
     fetch(SERVER_URL + 'users', { credentials: 'include'})
  ).then( json => {
    return json.map((user) => {
      return {
        id: user.id,
        name: user.name,
        rank: user.rank
      }
    })
  })
}

这段代码在我的server.js文件中

代码语言:javascript
运行
复制
app.get('/api/players', 
(req, res) => {
  riddleDao.getPlayers()
    .then(async players => {
        res.json(players)
    })
    .catch((err) => res.status(500).json(err));
});

最后,在我的DataAccessObject.js文件中

代码语言:javascript
运行
复制
exports.getPlayers = () => {
  return new Promise((resolve, reject) => {
    const sql = 'SELECT * FROM users';
    db.all(sql, [], (err, rows) => {
      if (err) { reject(err); return; }
      else {
        const players = rows.map(row => {
          return {
            id: row.id,
            name: row.name,
            rank: row.rank
          }
        })
        resolve(players);
      }
    });
  });
};

但是我发现了一个错误:

当我调用App.js函数时,我期望在getPlayer()中得到一个对象数组,并且数组中的对象应该在db表中具有players的id、名称和级别。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-13 08:22:44

我认为您的抓取URL中有“用户”,而它应该是"players“。

代码语言:javascript
运行
复制
fetch(SERVER_URL + 'users', { credentials: 'include'})

应该是

代码语言:javascript
运行
复制
fetch(SERVER_URL + 'players', { credentials: 'include'})
票数 2
EN

Stack Overflow用户

发布于 2022-07-13 08:26:11

您的api端点与您发送请求的url不同。

代码语言:javascript
运行
复制
app.get('/api/players', 

你在听“玩家”但是

代码语言:javascript
运行
复制
fetch(SERVER_URL + 'users', { credentials: 'include'})

你在抓取“用户”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72962997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档