![](/img/trans.png)
[英]TypeError: Cannot read properties of undefined (reading 'length') when using mongoose
[英]mongoose.connection Cannot read properties of undefined (reading 'on')
嘗試建立與 atlas 中的數據庫的連接時。 我得到Cannot read properties of undefined (reading 'on')
數據庫.js
import mongoose from "mongoose";
import dotenv from "dotenv";
mongoose.Promise = global.Promise;
mongoose.set("strictQuery", false);
dotenv.config()
let connection_uri = process.env.MONGODB_URI;
let cachedMongoConn = null;
export const connectToDatabase = () => {
return new Promise((resolve, reject) => {
//mongoose.Promise = global.Promise;
mongoose.connection
console.log(mongoose.connect)
.on("error", (error) => {
console.log("Error: connection to DB failed");
reject(error);
})
.on("close", () => {
console.log("Error: Connection to DB lost");
process.exit(1);
})
// Connected to DB
.once("open", () => {
// Display connection information
const infos = mongoose.connections;
infos.map((info) =>
console.log(`Connected to ${info.host}:${info.port}/${info.name}`)
);
// Return successful promise
resolve(cachedMongoConn);
});
if (!cachedMongoConn) {
cachedMongoConn = mongoose.connect(connection_uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
connectTimeoutMS: 60000,
bufferCommands: false,
});
} else {
console.log("MongoDB: using cached database instance");
resolve(cachedMongoConn);
}
});
};
注釋掉兩個 .on 我在.on
上.once
同樣的錯誤
不知道為什么我在連接mongoose.connection
時遇到問題,也許是 ES6 問題。
您提供的任何幫助將不勝感激。
你把調試
console.log(mongoose.connect)
在錯誤的地方。 它應該是
mongoose.connection
.on("error", (error) => {
即使它在新的一行上, .on
仍然指的是mongoose.connection
。 您不能只是在兩者之間插入一個新命令並期望它起作用。
更新:
“無效方案”錯誤不相關,也不是將console.log
放在代碼中任何位置的借口。 檢查錯誤的回溯,它在發生的地方有行號 - 把console.log
放在那里,例如
if (!cachedMongoConn) {
console.log(connection_uri)
cachedMongoConn = mongoose.connect(connection_uri, {
連接 url 來自環境變量MONGODB_URI
或.env
文件。 前者優先。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.