使用 Express 检索 GET 查询字符串参数



>我似乎在邮递员上获取查询字符串参数时遇到了麻烦。 首先,我想使用以下网址获取所有游戏类型 API:

localhost:3000/api/gameType/dota2

下面是代码:

const router = require('express').Router();
const GameTypeRepository = require('../../repository/GameTypeRepository');
router.get('/', async (req, res) => {
try {
const game_types = await GameTypeRepository.findByName(req.query.name);
res.json(game_types);
} catch (error) {
console.log(error);
res.sendStatus(500);
}
});

游戏类型存储库.js

const BaseRepository = require('../../../shared/repository/BaseRepository');
const GameType = require('../models/GameType');
class GameTypeRepository extends BaseRepository {
constructor(model) {
super(model);
}
findByName(name, fields) {
const options = {
where: { name }
};
if (!!fields && fields) {
options.attributes = fields;
}
return this.model.findOne(options);
}
}
module.exports = new GameTypeRepository(GameType);

但是当我执行我的邮递员的 url 时,我的终端上收到这条日志,上面写着:

Executing (default): SELECT `id`, `name`, `description` FROM `game_types` AS `game_types` WHERE `game_types`.`id` = 'dota2';

哪个应该'name' = 'dota2'

关于如何使用它的任何想法?泰亚。

我已经通过在router.get('/type/:name,中添加/type来解决这个问题

router.get('/type/:name', async (req, res) => {
try {
const game_types = await GameTypeRepository.findByName(req.params.name);
res.json(game_types);
} catch (error) {
res.sendStatus(404);
}
});

最新更新