Toto je skutečně jemný problém s kódem na straně serveru v nextjs.
Chyba je zjevná :pokoušíte se spustit kód na straně serveru (mongo dotaz) v kódu na straně klienta. Co není zřejmé, je příčina, protože jsem si jistý, že nemáte špatný kód...
Po nějakém ladění jsem zjistil, že tato chyba je vyvolána, pokud importujete svůj mongo kód a nepoužíváte jej. Postup, jak se tomu vyhnout, naleznete níže .
Dobré a špatné příklady
Takže to funguje dobře:
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
Zatímco to vyvolá chybu:
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
Jak se tomu vyhnout
Chcete-li se této chybě vyhnout, jednoduše odeberte veškerý import kódu na straně serveru ze svých komponent pokud je nepoužíváte v getServerSideProps
.