Node.js 執行環境(server)內並沒有 window
這個物件,只有在瀏覽器執行環境中才有。
Next.js 這類的 SSR 框架,在收到網頁請求時會先在 server 端執行並產生有內容的 HTML,接著回給瀏覽器,在瀏覽器接著執行。
哪些地方是在 server 端執行,哪些是在瀏覽器執行?舉例來說可以看這部分:
getServerSideProps
only runs on server-side and never runs on the browser.
上述很明確講說 getServerSideProps 只會在 server 端執行,不會在瀏覽器執行,所以在這裡面寫到 window
會報錯。