0

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

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

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

我可以将它作为本地人传递,但想知道我是否可以直接访问它——我的实验没有成功。

不寻找直接访问的利弊 - 只是想知道它是否可能以及如何。

4

3 回答 3

3

req.query以下是从您的视图访问的几种方法:

在调用中将其设置为本地render

function(req, res) {
  res.render('myview', {query: req.query});
};

在您看来,您可以访问searchquery.search.

res.locals

function(req, res) {
  res.locals.query = req.query;
  res.render('myview');
};

在您看来,您可以访问searchquery.search.

使用中间件

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

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

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


编辑

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

于 2012-11-26T19:21:45.177 回答
1

我很确定只有当地人才能进入视野。

不寻找直接访问的利弊 - 只是想知道它是否可能以及如何。

没有优点和缺点。这就像说我想将 15 与 0 相乘,但我不希望答案是苹果。

于 2012-11-26T19:09:08.030 回答
1

中间件:

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

看法:

<%= param.search %>
于 2012-11-26T20:34:28.913 回答