快递 Knex req.query
Express Knex req.query
express
和 knex
有点打不过我;我无法使用 req.querys
(来自 express
的响应)使此端点工作,即使我使用 req.params
做了一个并且没问题。
快递:
app.get(`/actor`, async (req: Request, res: Response) => {
try {
// const { gender } = req.query;
const count = await getActorsByGender(req.query.gender as string);
console.log({ count });
res.status(200).send({ quantity: count, });
} catch (error) {
res.status(200).send({ message: error.sqlMessage || error.message });
}
});
Knex 申请:
const getActorsByGender = async (gender: string): Promise<any> => {
try {
const result = await connection.raw(`
SELECT COUNT(*) as count FROM Actor
WHERE gender = "${gender}"
`);
// console.log(`Temos: ${result[0][0].count} ocorrências`);
return result;
} catch (error) {
console.log(error);
}
};
这可能是因为 count()
,但我不确定。 knex
部分没问题;我可以 console.log()
结果。
express
部分在 insomnia
上显示了一个空对象
使用 'male' 作为参数,预期结果为 return“2”。
你发送 male
作为 a route/path parameter 因为你使用 http://localhost:3000/actor/male
.
如果你想以 query-param 的形式访问它,你可以保留你的代码,但你需要将你的 request-url 更改为 http://localhost:3000/actor?gender=male
请注意,如果您想将 gender
定义为 route-parameter,您需要将 route-handler 更改为 app.get("/actor/:gender")
并使用 [=15 访问它=].
您在 insomnia
中使用 path param
,而不是 query param
如果你想使用query params
,你必须从URL中删除/male
,并添加query param
key
和value
在 URL.
下面
您也可以将 URL 更改为 locahost:3000/actor?gender=male
express
和 knex
有点打不过我;我无法使用 req.querys
(来自 express
的响应)使此端点工作,即使我使用 req.params
做了一个并且没问题。
快递:
app.get(`/actor`, async (req: Request, res: Response) => {
try {
// const { gender } = req.query;
const count = await getActorsByGender(req.query.gender as string);
console.log({ count });
res.status(200).send({ quantity: count, });
} catch (error) {
res.status(200).send({ message: error.sqlMessage || error.message });
}
});
Knex 申请:
const getActorsByGender = async (gender: string): Promise<any> => {
try {
const result = await connection.raw(`
SELECT COUNT(*) as count FROM Actor
WHERE gender = "${gender}"
`);
// console.log(`Temos: ${result[0][0].count} ocorrências`);
return result;
} catch (error) {
console.log(error);
}
};
这可能是因为 count()
,但我不确定。 knex
部分没问题;我可以 console.log()
结果。
express
部分在 insomnia
使用 'male' 作为参数,预期结果为 return“2”。
你发送 male
作为 a route/path parameter 因为你使用 http://localhost:3000/actor/male
.
如果你想以 query-param 的形式访问它,你可以保留你的代码,但你需要将你的 request-url 更改为 http://localhost:3000/actor?gender=male
请注意,如果您想将 gender
定义为 route-parameter,您需要将 route-handler 更改为 app.get("/actor/:gender")
并使用 [=15 访问它=].
您在 insomnia
中使用 path param
,而不是 query param
如果你想使用query params
,你必须从URL中删除/male
,并添加query param
key
和value
在 URL.
您也可以将 URL 更改为 locahost:3000/actor?gender=male