查询参数并表达SSR

时间:2017-10-09 11:24:25

标签: reactjs express

我有一个现有的ReactJS应用程序,它使用查询字符串npm来读取查询参数。

我使用以下代码:

const queryString = require('query-string')

const query = queryString.parse(location.search)

目前,我正在尝试转换为SSR应用程序,但每当我构建解决方案时,它编译但运行服务器(expressjs)会导致以下错误消息:

var query = queryString.parse(location.search);
                              ^
ReferenceError: location is not defined

知道怎么解决这个问题吗?我还需要使用查询字符串npm,还是在expressJS中解决这个问题?

非常感谢!

1 个答案:

答案 0 :(得分:2)

location仅存在于浏览器上。

如果要解析服务器上的q,则需要直接从请求中解析它:

var query = queryString.parse(req.query);

或者,如果您希望逻辑仅在客户端运行,则可以使用:

var query = (typeof document === 'undefined') ? {} : queryString.parse(location.search);