我有一个现有的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中解决这个问题?
非常感谢!
答案 0 :(得分:2)
location
仅存在于浏览器上。
如果要解析服务器上的q,则需要直接从请求中解析它:
var query = queryString.parse(req.query);
或者,如果您希望逻辑仅在客户端运行,则可以使用:
var query = (typeof document === 'undefined') ? {} : queryString.parse(location.search);