これは、nextjsのサーバー側コードに関する実際の微妙な問題です。
エラーは明らかです :クライアント側のコードでサーバー側のコード(mongoクエリ)を実行しようとしています。明らかではないのは原因です。間違ったコードを持っていないはずだからです...
デバッグの結果、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
にあります 。