Dies ist ein wirklich subtiles Problem mit serverseitigem Code in nextjs.
Der Fehler ist offensichtlich :Sie versuchen, serverseitigen Code (Mongo-Abfrage) in einem clientseitigen Code auszuführen. Was nicht offensichtlich ist, ist die Ursache, weil ich sicher bin, dass Sie keinen falschen Code haben...
Nach einigem Debuggen habe ich festgestellt, dass dieser Fehler ausgelöst wird, wenn Sie Ihren Mongo-Code importieren und ihn nicht verwenden. Weitere Informationen zur Vermeidung finden Sie weiter unten .
Gute und schlechte Beispiele
Das funktioniert also gut:
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
Während dies den Fehler auslöst:
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
Wie man es vermeidet
Um diesen Fehler zu vermeiden, entfernen Sie einfach jeden serverseitigen Codeimport in Ihren Komponenten, wenn Sie ihn nicht verwenden es in getServerSideProps
.