node.js - 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}`)
)
寻求一些帮助我对编码真的很陌生,所以如果我发错了请原谅我。
解决方案
看一下这个:
您正在mongoose
从db.js
文件中导出。尝试导出connectDB
您刚刚创建的函数。
// between brackets just in case you need to export something else, ok?
module.exports = { connectDB }
然后像这样导入它:
const { connectDB } = require('./config/db')
推荐阅读
- scala - 为什么在 Scala 中没有 AnyVal 和泛型的分配
- sql - 当数据已经被双引号括起来时,如何在数据中转义双引号
- javascript - MongoDB:无效的ObjectId,ObjectId.id必须是字符串或者Buffer,但是是[{"type":"Buffer","data":[]}]
- flutter - flutter_mobile_vision 包中的网络摄像头实现
- python - 张量流概率:ValueError:张量的形状 (2, 2) 与提供的形状 (2,) 不兼容
- reactjs - 获取@formatjs/ecma402-abstract version1.3 发现错误:DateTimeFormat/skeleton.d.ts(4,13) ',' 预期。TS1005 错误
- c - 判断一个词是否为等值线,数组订阅错误
- blockchain - Solidity:在依赖于参数的查找后,由于找不到成员“余额”或不可见而出现错误
- c# - 如何按名称从特定元素中查找值?
- c# - How to set up constructors for deserialization of Get only properties without having to duplicate code in c#?