sql >> Databáze >  >> NoSQL >> MongoDB

nextjs import, ale nevyvolání funkce vyvolá Modul nenalezen:Chyba:Nelze vyřešit 'dns'

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 .



  1. Ovladač MongoDb c# najde položku v poli podle hodnoty pole

  2. MongoDB:spočítejte počet položek v poli

  3. flask 0.10 mongo pracující mimo kontext aplikace

  4. Jaký je správný způsob indexování v MongoDB, když existuje velká kombinace polí