猿问

Now 2 迁移的问题

作为这里所说的频谱,我在从一个Express自定义服务器迁移我的下一个网站,现在的烦恼。我的问题是我无法获取主页,因为我正在尝试发送 URL 参数,但没有成功。我需要传递一个lang参数,如下:


localhost:3000/en

然后,我将不得不按预期获得 Home。但我收到此异常:


类型错误:无法读取 Function.getInitialProps 处未定义的属性“lang”(/Users/lucacattide/Vagrant/debian/public/LC/front-end/.next/server/static/development/pages/_document.js:1111:32 )


那是因为我之前出于各种原因读取了ctx.req.params.lang参数_document.js getInitialProps。即使将其替换为ctx.req.query.lang我仍然得到它。


我目前正在复制 Zeit 迁移指南和文章中的两个示例。正如两者所建议的那样,我正在尝试这种API方法(https://zeit.co/guides/migrate-to-zeit-now/)和pages一种方法(https://zeit.co/guides/custom-next-js -服务器到路由/)。在 API 一中,我实现了内部/api路径,即[lang].js段,内容如下:


module.exports = (req, res) => {

  res.send(req.query.lang);

}

然后用/pages一个,我复制并改名为index.js以[lang].js相同的路径内,并取代了req.query.lang如上所述。这两个都不起作用。我遇到了同样的异常,它警告_document.js. 我需要它,因为它内部的进程不同,所以在我的情况下删除它不是一个选项。当然,我正在now dev我的localhost. 该应用程序在 Express 上运行良好,因此我希望解决此问题以便在 Now 上正确部署它。


任何人之前都经历过这种情况,或者可以帮助我提出一些建议吗?


预先感谢您的支持。


交互式爱情
浏览 158回答 2
2回答

桃花长相依

如果您正在使用像这样传递 langlocalhost:3000/en然后使用下面的代码段来访问它req.params.lang但是如果你像这样传递 lang localhost:3000?lang=en然后用这个req.query.lang

米琪卡哇伊

由于 Now 平台更新 - v2 - 我注意到很多 Next API 部分发生了变化。通过修改我的代码以遵循新方法,我能够获得以前缺少的参数。具体来说,我按照最新官方文档中的API路由提示进行操作
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答