node.js - 使用 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);
}
});
GameTypeRepository.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'
关于如何使用它的任何想法?蒂亚。
解决方案
我通过在我的添加/type解决了这个问题router.get('/type/:name,
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);
}
});
推荐阅读
- python-3.x - OSError: [Errno 22] udp 连接的参数无效
- flutter - 如何在gridView中加载所有图像?
- protractor - 量角器负载测试浏览器选项卡无法正常工作
- javascript - 如何在 React 中编辑和删除用户信息(MongoDB)
- javascript - 一次更改对象数组中的多个属性
- python - 运行覆盖测试时出现“操作错误”
- android - 得到错误:'请在 Android Studio 中配置 android sdk'
- python - 解析 json 文件以获取要插入 bigquery 的正确列
- c# - 当我尝试将 csv 文件上传到控制器时,它总是返回 404
- android - Undefined 不是 TextInput onSubmitEditing Focus 的对象