MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

nextjs импортира, но не извиква хвърляния на функция Модулът не е намерен:Грешка:Не може да се разреши „dns“

Това е наистина фин проблем с кода от страната на сървъра в nextjs.

Грешката е очевидна :опитвате се да изпълните код от страна на сървъра (монго заявка) в код от страна на клиента. Това, което не е очевидно, е причината, защото съм сигурен, че нямате грешен код...

След известно отстраняване на грешки открих, че тази грешка се извежда, ако импортирате своя 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 .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoDB 2.2.1 - базата данни не е валидна

  2. Mongoose unshift findAndUpdateById

  3. Проблем с дублирането на Mongo DB при използване на сортиране с ограничение и пропускане при агрегиране

  4. Връща първия елемент, ако не е открито съвпадение в масива

  5. Как да намерите произволен запис в Mongoose