MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

import nextjs, ale nie wywołuj funkcji rzuca Nie znaleziono modułu:Błąd:nie można rozwiązać 'dns'

To naprawdę subtelny problem z kodem po stronie serwera w nextjs.

Błąd jest oczywisty :próbujesz wykonać kod po stronie serwera (zapytanie mongo) w kodzie po stronie klienta. To, co nie jest oczywiste, to przyczyna, ponieważ jestem pewien, że nie masz złego kodu...

Po pewnym debugowaniu odkryłem, że ten błąd jest zgłaszany, jeśli zaimportujesz swój kod mongo i nie użyjesz go. Zobacz poniżej, aby dowiedzieć się, jak tego uniknąć .

Dobre i złe przykłady

To działa dobrze:

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

Chociaż spowoduje to wyświetlenie błędu:

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 tego uniknąć

Aby uniknąć tego błędu, po prostu usuń wszelkie importy kodu po stronie serwera w Twoich komponentach, jeśli nie używasz to w getServerSideProps .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB agreguje liczbę elementów w dwóch tablicach w różnych dokumentach?

  2. Jak wyświetlić listę wszystkich kolekcji w powłoce MongoDB?

  3. Używasz agregacji do łączenia listy wszystkich poddokumentów pasujących do zapytania?

  4. Jak usunąć ciąg z tablicy w dokumencie mongodb?

  5. Spring Boot łączy Mysql i MongoDb