Как передать переменную для получения запроса - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть эта функция, которая вызывает запрос 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);
});
});

Значение имени пользователя поступает из поля формы, поэтому вызывающий его компонент не подписывается ни на какие параметры URL, если это имеет значение.

1 Ответ

1 голос
/ 04 апреля 2020

если вы передадите его в качестве параметра, вы должны использовать 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);
});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...