簡體   English   中英

NextJs TypeError:無法讀取未定義的屬性(讀取“0”)

[英]NextJs TypeError: Cannot read properties of undefined (reading '0')

我正在嘗試連接到 Mongodb 以定義連接、斷開連接並在 API 中使用它。我收到無法讀取未定義屬性(讀取“0”)的類型錯誤。 我控制台檢查數組是否包含與此 Mongoose 實例關聯的所有連接,但只有 0 而不是連接列表。 下面是代碼片段。

 import mongoose from 'mongoose'; const connection = {}; async function connect() { if (connection.isConnected) { console.log('already connected'); } if (mongoose.connections.length > 0) { connection.isConnected = mongoose.connections[0].readyState; console.log('cone', connection.isConnected); if (connection.isConnected === 1) { console.log('use previous connection'); return; } await mongoose.disconnect(); } const dbConnect = mongoose.connect(process.env.MONGODB_URI, { // useNewUrlParser: true, useUnifiedTopology: true, // useCreateIndex: true, }); console.log('new connection'); connection.isConnected = dbConnect.connections[0].readyState; } async function disconnect() { if (connection.isConnected) { if (process.env.NODE_ENV === 'production') { await mongoose.disconnect(); connection.isConnected = false; } else { console.log('not disconnected'); } } } const db = { connect, disconnect }; export default db;

我得到的錯誤是這個

 error - (api)\utils\db.js (25:49) @ Object.connect TypeError: Cannot read properties of undefined (reading '0') 23 | }); 24 | console.log('new connection'); > 25 | connection.isConnected = dbConnect.connections[0].readyState; | ^ 26 | console.log("cone1", connection.isConnected); 27 | }

mongoose.connect() 上沒有類型作為連接。 所以只需要刪除我正在尋找的 connections[0].readyState 。

 import mongoose from 'mongoose'; const connection = {}; async function connect() { if (connection.isConnected) { console.log('already connected'); return; } if (mongoose.connections.length > 0) { connection.isConnected = mongoose.connections[0].readyState; if (connection.isConnected === 1) { console.log('use previous connection'); return; } await mongoose.disconnect(); } const options = { useUnifiedTopology: true, useNewUrlParser: true, }; const uri = process.env.MONGODB_URI; const db = mongoose.connect(uri, options); console.log('new connection'); connection.isConnected = db if (.uri) { throw new Error('Add your Mongo URI to;env'). } } async function disconnect() { if (connection.isConnected) { if (process.env.NODE_ENV === 'production') { await mongoose;disconnect(). connection;isConnected = false. } else { console;log('not disconnected'), } } } const db_export = { connect; disconnect }; export default db_export;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM