我现在才意识到有关nextjs env vars here的这种行为,这与通常设置nodejs应用程序的方式不同:
注意:。env文件应包含在您的存储库中,并且.env * .local应该位于.gitignore中,因为这些文件旨在忽略了。将.local文件视为秘密的好地方,并且非本地文件作为默认设置的好地方。
因此,我考虑将自己限制为使用仅在构建时可用的机密,并在“后端” /api
路由中使用。
但是/api
路由甚至表现得像真实的后端吗?由于nextjs是SSR (仅在必要时)>(?),我认为此/ api代码也可以在浏览器中结束,因此公开了秘密吗?有没有一种方法可以强制代码仅在服务器端而不在浏览器中运行?我是SSR概念的新手。我的“真实”后端不会有一段时间可用。这不是一个非常重要的秘密,但仍然是。谢谢。
我现在在这里意识到有关nextjs env vars的这种行为,这与通常设置nodejs应用程序的方式不同:注意:.env文件应包含在您的存储库中,而.env *...。
API路由不会最终出现在客户端捆绑包中,因此您在/pages/api
中放置的任何代码都不会对用户隐藏。这些路由只能在服务器环境中运行。