node.js - 如何传递变量以获取请求
问题描述
我有这个调用get请求的函数:
confirmUser(username: string) {
this.http.get<{ users: User[] }>('http://localhost:3000/users').subscribe(
// success function
(response) => {
this.user = response.users;
console.log(this.user);
}
),
(error: any) => {
console.log(error);
}
}
我怎样才能使上述函数中传入的用户名可用于替换Grok
此处的用户名:
router.get('/', (req, res, next) => {
// User.find().then(users => {
User.findOne({username: "Grok"}, {} ).then(users => {
res.status(200).json({
users: users
});
})
.catch(error => {
returnError(res, error);
});
});
username 的值来自表单字段,因此调用它的组件不会订阅任何 URL 参数,如果这会有所不同的话。
解决方案
如果将其作为参数传递,则应使用req.params
,否则req.query
用于查询字符串。
使用参数(即:)http://localhost:3000/users/grok
:
router.get('/:username', (req, res, next) => {
// User.find().then(users => {
User.findOne({username: req.params.username }, {} ).then(users => {
res.status(200).json({
users: users
});
})
.catch(error => {
returnError(res, error);
});
});
使用查询字符串(即:http://localhost:3000/users?username=grok):
router.get('/', (req, res, next) => {
// User.find().then(users => {
User.findOne({username: req.query.username }, {} ).then(users => {
res.status(200).json({
users: users
});
})
.catch(error => {
returnError(res, error);
});
});
推荐阅读
- javascript - AG Grid 从 api 的结果创建 colDefs
- java - 为什么 Java Records 有访问器方法而不是公共的 final 字段?
- compilation - 基于 REST API 的开源编译器,适用于多种编程语言
- python - 如何在 x 轴和 y 轴上绘制 matplotlib 颤动箭头?- Python
- excel - VBA从列(B到G)复制和粘贴循环到A列的最后一行
- javascript - 禁用加密填充
- rust - 如果是向量的一部分,则删除值,如果是,则将其累积到另一个变量
- extent - 如何扩展此代码以适应 D 和 E 驱动器
- python - PIL 不保存透明度,而是带回背景
- reactjs - react-google-places-autocomplete 实现?