访问req in expressjs 3次观看

时间:2012-11-26 18:40:21

标签: node.js express

是否可以在ExpressJS 3中的视图中访问我的查询参数?

我有一个网址:http://example.com?search=blah

在我看来,我想访问搜索参数

我可以将它作为当地人传递,但想知道我是否可以直接访问它 - 我的实验并不成功。

不寻找直接访问的优点和缺点 - 只想知道它是否可能以及如何实现。

3 个答案:

答案 0 :(得分:2)

以下是从您的观点中访问req.query的几种方法:

render

的调用中将其设置为本地
function(req, res) {
  res.render('myview', {query: req.query});
};
在您的视图

中,您可以search访问query.search

设置res.locals

function(req, res) {
  res.locals.query = req.query;
  res.render('myview');
};
在您的视图

中,您可以search访问query.search

使用中间件

这与前面的示例类似,但我们可以以可重用的方式使用中间件。

function(req, res, next) {
  res.locals.query = req.query;
  next();
};

使用上述中间件的任何路由都将设置res.locals.query


修改

我似乎误解了这个问题。目的是查看是否可以在不使用上述技术的情况下访问请求数据。据我所知,它不能。希望上述内容对某些读者仍然有用。

答案 1 :(得分:1)

我很确定只有本地人才会被传递到视图。

  

不寻找直接访问的优点和缺点 - 只想知道它是否可能以及如何实现。

没有利弊。这就像是说我希望将15乘以0但我不希望答案是苹果。

答案 2 :(得分:1)

中间件:

function(req, res, next) {
  res.locals.param = req.param;
  next();
};

视图:

<%= param.search %>