【发布时间】:2020-01-15 03:33:26
【问题描述】:
我在之前运行的应用程序中遇到了这个错误
const usersCollection = require('../db').db().collection("users")
^
TypeError: require(...).db is not a function
at Object.<anonymous> (/Users/user/Desktop/sites/app/models/User.js:2:42)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Function.Module._load (internal/modules/cjs/loader.js:727:14)
at Module.require (internal/modules/cjs/loader.js:852:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/Users/user/Desktop/sites/app/controllers/userController.js:1:14)
db.js
const dotenv = require('dotenv')
dotenv.config()
const mongodb = require('mongodb')
mongodb.connect(process.env.CONNECTIONSTRING, {useNewUrlParser: true, useUnifiedTopology:
true}, function(err, client) {
module.exports = client
const app = require('./app')
app.listen(process.env.PORT)
})
.env 文件
CONNECTIONSTRING=mongodb+srv://user:password@sandbox-gk8wp.mongodb.net/db?
retryWrites=true&w=majority
PORT=3000
我也将我的 mongodb npm 包从 3.3.3 更新到 3.4.1,但仍然出现同样的错误。似乎是什么问题?
【问题讨论】:
-
您的代码中有很多可以改进的地方。您是否正在遵循任何类型的教程来开始?虽然您的 db.js 应该(并且确实)包含有关连接到数据库的详细信息,但它不是应用程序声明的正确位置。但是您会收到该错误,因为 db.js 没有定义名为 db() 的函数。
-
嗨,史蒂夫,是的,我遵循了这个教程并添加了一些。这是去年发布的一个工作和发布的应用程序,然后突然中断。我已经审查了我的提交并检查了所有相同的内容。我想不通。我现在正在尝试更改我的数据库连接的代码。
-
请检查这个 :: stackoverflow.com/questions/59709431/… ,您需要在 db 文件中导出
newFunction。