Having an issue with one of my APIs. Everything seems to be working fine, except when I try to fetch all records based on a parameter, I receive an undefined response. What's frustrating is that if I manually enter the search string into my browser, I get the expected response.
Snippet from API:
tilesRouter.param('cardId', (req, res, next, cardId) => {
console.log('cardId: ', cardId);
const sql = 'SELECT * FROM tile WHERE card_id = $cardId';
const values = {$cardId: cardId};
console.log('param sql: ', sql);
console.log('param values: ', values);
db.all(sql, values, (error, tile) => {
if (error) {
next(error);
} else if (tile) {
console.log('param req:tile: ', req.tile);
req.tile = tile;
next();
} else {
res.sendStatus(404);
}
});
});
tilesRouter.get('/:cardId', (req, res, next) => {
res.status(200).json({tile: req.tile});
});
Util snippet for Bingo:
Bingo.getTiles = card_id => {
const url = `${baseUrl}/tiles/${card_id}`;
return fetch(url).then(response => {
if (!response.ok) {
return new Promise(resolve => resolve([]));
}
return response.json().then(jsonResponse => {
console.log('jsonResponse: ', jsonResponse); // empty
return jsonResponse.tiles.map(tile => camelcaseKeys(tile));
});
});
};
Screenshot URL: