首页 > 解决方案 > connectDB 不是函数

问题描述

嗨,我是编码新手,目前正在尝试建立与我的服务器的连接。

收到错误消息:

“TypeError:connectDB 不是函数”

这是我的 db.js 文件

const mongoose = require('mongoose')

const connectDB = async () => {
  try {
    const conn = await mongoose.connect(process.env.MONGO_URI, {
      useUnifiedTopology: true,
      useNewUrlParser: true,
      useCreateIndex: true,
    })

    console.log(`MongoDB Connected: ${conn.connection.host}`)
  } catch (error) {
    console.error(`Error: ${error.message}`)
    process.exit(1)
  }
}

module.exports = { connectDB }

这是我的 server.js 文件

const express = require('express')
const dotenv = require('dotenv')
const connectDB = require('./config/db')
const products = require('./seed/products')

dotenv.config()

connectDB()

const app = express()

server.get('/', (req, res) => {
  res.send('API is running.........')
})
server.get('/api/products', (req, res) => {
  res.json(products)
})

server.get('/api/products/:id', (req, res) => {
  const product = products.find((p) => p._id === req.params.id)
  res.json(product)
})

const PORT = process.env.PORT || 5000
server.listen(
  PORT,
  console.log(`Server running in ${process.env.NODE_ENV} port ${PORT}`)
)

寻求一些帮助我对编码真的很陌生,所以如果我发错了请原谅我。

标签: node.jsmongodbexpress

解决方案


看一下这个:

您正在mongoosedb.js文件中导出。尝试导出connectDB您刚刚创建的函数。

// between brackets just in case you need to export something else, ok?
module.exports = { connectDB }

然后像这样导入它:

const { connectDB } = require('./config/db')

推荐阅读