Передача параметра get для экспресс-маршрута - PullRequest
0 голосов
/ 29 августа 2018

Я новичок в nodejs и выражаю и пытаюсь создать простую функциональность

У меня есть этот фрагмент кода, который успешно отправляет мои запросы get на соответствующий маршрут (в данном случае это служба, в которой у меня написан запрос mysql)

app.get('/requests', service.getRequests);

Это работает с простым запросом get, как http://localhost:5000/requests

Мне интересно, как я могу получить параметр из запроса get и передать его в обработчик маршрута?

Например: что-то вроде http://localhost:5000/requests?id=123 Я хотел бы передать идентификатор функции service.getRequests, но ниже не работает -

app.get('/request',function(req,res){
  res.send(service.getRequests(req));
});

Вот как выглядит service.js (часть)

exports.getRequests = function(req,res){
  //console.log(req.id);
  connection.connect()
  connection.query('SELECT * FROM table1 t where t.uid = ? LIMIT 10',[req.id], function (err, result, fields) {
    if (err) throw err
    res.json({ results: result });
  })
  connection.end()
}

РЕДАКТИРОВАТЬ: Мой вопрос, в частности, не о том, как получить параметр GET, а о том, как я могу использовать его с res.send / вызовом службы с этим параметром, в частности, в следующей строке -

app.get('/request',function(req,res){
  res.send(service.getRequests(req));
});

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы можете настроить свою конечную точку так, чтобы она принимала переменную, подобную этой

http://localhost:5000/requests/123

app.get('/request/:id',function(req,res){
    const id = req.params.id;
    console.log(id); // should display 123
});
0 голосов
/ 29 августа 2018

Не ясно, какой модуль узла вы используете для отправки запросов в PostgreSQL. Но, предполагая, что вы используете pg, проблема в том, что вы должны поставить параметр следующим образом:

SELECT * FROM table1 t where t.uid = $1 LIMIT 10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...