MongoDB connected...
Development server live on http://localhost:3000
node:internal/errors:465
ErrorCaptureStackTrace(err);
^
Error: querySrv ECONNREFUSED _mongodb._tcp.auctiondbcluster.s6rzg.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (node:dns:213:19) {
errno: undefined,
code: 'ECONNREFUSED',
syscall: 'querySrv',
hostname: '_mongodb._tcp.auctiondbcluster.s6rzg.mongodb.net'
}
當我連接到我的 wifi 時一切正常,但是當我離線并啟動服務器時,它會出現此錯誤。順便說一句,我沒有嘗試連接到 MongoDB 在線集群,而是嘗試連接到本地主機(mongodb://localhost:27017/auctionDB)。
這是我正在使用的功能app.js
const runServer = async () =>{
if(process.env.NODE_ENV !== "production"){
await connectDb(process.env.MONGODB_LOCAL_CONNECTION);
app.listen(PORT, ()=>{
console.log(`Development server live on http://localhost:${PORT}`);
})
} else {
await connectDb(process.env.MONGODB_CONNECTION_STRING);
app.listen(PORT, ()=>{
console.log(`Production server live on port ${PORT}`);
})
}
}
runServer();
在我的.env檔案NODE_ENV中設定為開發。這是connectDb.js我用來連接資料庫的函式
const mongoose = require("mongoose");
/**
* @description: Connect to the database by providing the connection string.
* @param {String} uri | MongoDB URI
* @default: mongodb://localhost:27017/auctionDB
*
* @returns {undefined}
*/
const connectDb = (url = process.env.MONGODB_LOCAL_CONNECTION) => {
try {
const con = mongoose.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true
});
if(con) console.log("MongoDB connected...")
} catch(e){
console.log(`Error: ${e}`);
}
};
module.exports = connectDb;
這是github上的整個專案
uj5u.com熱心網友回復:
確保您的 MongoDB URL 是 [ mongodb://localhost:27017/ ],而不是在線連接 MongoDB URL。在第13行
uj5u.com熱心網友回復:
你應該打電話,await而mongoose.connect不是整個功能:
const connectDb = async (url = process.env.MONGODB_LOCAL_CONNECTION) => {
try {
const con = await mongoose.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true
});
if(con) console.log("MongoDB connected...")
} catch(e){
console.log(`Error: ${e}`);
}
};
module.exports = connectDb;
const runServer = () =>{
if(process.env.NODE_ENV !== "production"){
connectDb(process.env.MONGODB_LOCAL_CONNECTION);
app.listen(PORT, ()=>{
console.log(`Development server live on http://localhost:${PORT}`);
})
} else {
connectDb(process.env.MONGODB_CONNECTION_STRING);
app.listen(PORT, ()=>{
console.log(`Production server live on port ${PORT}`);
})
}
}
runServer();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/495733.html
下一篇:Mongodb嵌套物件id
