ไม่จำเป็นต้องใช้ useNewUrlParser และ useUnifiedTopology ตั้งแต่ MongoDB Driver รุ่น 4.0.0 ขึ้นไป เพราะ MongoDB Driver รุ่นใหม่จะใช้งานฟีเจอร์เหล่านี้โดยอัตโนมัติ
ผู้เขียนกำลังทำโปรเจคด้วย Node.js + Express เชื่อมต่อ MongoDB ผ่าน Mongoose และเจอปัญหาเลยมาแชร์กัน
ปัญหา
mongoose.connect(dbUrl,{
useNewUrlParser:true,
useUnifiedTopology:true
}).catch(err=>console.log(err))
โค้ดเต็มในไฟล์ product.js
//ใช้งาน mongoose
const mongoose = require('mongoose')
//เชื่อมต่อ MongoDB
const dbUrl = 'mongodb://localhost:27017/productDB'
mongoose.connect(dbUrl,{
useNewUrlParser:true,
useUnifiedTopology:true
}).catch(err=>console.log(err))
//ออกแบบ Schema
let productSchema = mongoose.Schema({
name:String,
price:Number,
image:String,
description:String
})
//สร้าง Model
let Product = mongoose.model("products",productSchema)
//ส่งออก Model
module.exports = Product;
//ฟังก์ชันบันทึกข้อมมูล
module.exports.seveProduct=function(model,data){
model.save(data)
}
แก้ปัญหา
mongoose.connect(dbUrl)
.then(() => {
console.log('Database connected successfully');
})
.catch(err => {
console.log('Database connection error: ', err);
});
โค้ดเต็มในไฟล์ product.js
//ใช้งาน mongoose
const mongoose = require('mongoose')
//เชื่อมต่อ MongoDB
const dbUrl = 'mongodb://localhost:27017/productDB'
mongoose.connect(dbUrl)
.then(() => {
console.log('Database connected successfully');
})
.catch(err => {
console.log('Database connection error: ', err);
});
//ออกแบบ Schema
let productSchema = mongoose.Schema({
name:String,
price:Number,
image:String,
description:String
})
//สร้าง Model
let Product = mongoose.model("products",productSchema)
//ส่งออก Model
module.exports = Product;
//ฟังก์ชันบันทึกข้อมมูล
module.exports.seveProduct=function(model,data){
model.save(data)
}
นี่เป็นแค่หนึ่งวิธีในการแก้ปัญหา หากผิดพลาดประการใด สามารถมาแชร์กันได้ครับ ขอบคุณครับ
Перекладено з: ไม่จำเป็นต้องใช้ useNewUrlParser และ useUnifiedTopology ตั้งแต่ MongoDB Driver รุ่น 4.0.0 ขึ้นไป