Това е наистина фин проблем с кода от страната на сървъра в nextjs.
Грешката е очевидна :опитвате се да изпълните код от страна на сървъра (монго заявка) в код от страна на клиента. Това, което не е очевидно, е причината, защото съм сигурен, че нямате грешен код...
След известно отстраняване на грешки открих, че тази грешка се извежда, ако импортирате своя mongo код и не го използвате. Вижте по-долу, за да разберете как да го избегнете .
Добри и лоши примери
И така, това работи добре:
import { findUsers } from '../lib/queries'
function Home({ users }) {
return (
<h1>Users list</h1>
//users.map and so on...
)
}
export async function getServerSideProps() {
const users = await findUsers()
return {
props: {
users: users
}
}
}
export default Home
Докато това ще изведе грешката:
import { findUsers } from '../lib/queries'
function Home({ users }) {
return (
<h1>Users list</h1>
//users.map and so on...
)
}
export async function getServerSideProps() {
// call disabled to show the error
// const users = await findUsers()
return {
props: {
users: [] //returned an empty array to avoid other errors
}
}
}
export default Home
Как да го избегнем
За да избегнете тази грешка, просто премахнете всеки импортиран код от страна на сървъра във вашите компоненти, ако не използвате го в getServerSideProps
.