传递get参数表示路线

时间:2018-08-29 18:08:02

标签: node.js express

我是nodejs的新手,可以表达并尝试构建简单的功能

我有这段代码可以成功地将我的get请求发送到适当的路由(在这种情况下,这是我编写了mysql查询的服务)

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

这适用于简单的get请求,例如http://localhost:5000/requests

我想知道如何从get请求中获取参数并将其传递到路由处理程序中?

例如:类似http://localhost:5000/requests?id=123的东西,我想将id传递给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 :(得分:0)

不清楚您要使用哪个节点模块向PostgreSQL发送查询。 但是,假设您使用的是pg,那么问题是您应该按如下所示放置参数:

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

答案 1 :(得分:0)

您可以将端点配置为采用这样的变量

http://localhost:5000/requests/123

df1 <- read.table(text="Id       ServiceDate    
234       2004-02-10
234       2003-11-05
234       2002-06-07
117458       2002-03-14
117458       2003-03-17
117458       2004-07-05
2195623       2002-04-12
2195623       2002-08-15
2195623       2002-09-10", header = TRUE)


df2 <- read.table(text="Id       Effective_Dt     Effct_End_Dt    Capacity    
234       2004-01-01       2004-12-31      10
234       2002-01-01       2003-12-31      17        
117458       2000-03-14       2004-12-31      11
2195623       1995-04-01       2003-05-25      22
2195623       2003-05-26       2004-04-17      27 
2195623       2004-04-18       2004-12-31      25", header = TRUE)