我在App.js中有这段代码
const getPlayers = async()=>{
const players = await API.getPlayers();
setPlayers(players)
}
getPlayers()
这段代码在我的API.js文件中
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文件中
app.get('/api/players',
(req, res) => {
riddleDao.getPlayers()
.then(async players => {
res.json(players)
})
.catch((err) => res.status(500).json(err));
});
最后,在我的DataAccessObject.js文件中
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、名称和级别。
发布于 2022-07-13 08:22:44
我认为您的抓取URL中有“用户”,而它应该是"players“。
fetch(SERVER_URL + 'users', { credentials: 'include'})
应该是
fetch(SERVER_URL + 'players', { credentials: 'include'})
发布于 2022-07-13 08:26:11
您的api端点与您发送请求的url不同。
app.get('/api/players',
你在听“玩家”但是
fetch(SERVER_URL + 'users', { credentials: 'include'})
你在抓取“用户”
https://stackoverflow.com/questions/72962997
复制相似问题