NodeJS中连接MongoDB数据库
本例中下载安装在本地的是 MongoDB 3.6.9 版本
一:2.x 版本连接数据库的js代码:
var express = require("express");
var app = express();
var MongoClient = require('mongodb').MongoClient;
app.get("/",function(req,res){
//URL就是数据库的地址。/表示数据库
//加入数据库不存在,程序会帮你自动创建一个数据库
var url = 'mongodb://localhost:27017/haha';
//连接数据库
MongoClient.connect(url, function(err, db) {
//回调函数表示连接成功后做的事情,db参数就是连接上的数据库实体
if(err){
console.error("数据库连接失败!");
return;
}else{
console.log("数据库连接成功!");
db.close();
}
});
res.send("ok");
});
app.listen(3005);
运行结果:
报错信息:
当前的URL字符串解析器被弃用然后也提供了解决方案 让你在选项里面{useNewUrlParser: true}
解决办法:
MongoClient.connect(url,{useNewUrlParser:true}, function(err, db) {
重新运行后数据库可以重新连接。
3.x 以后版本连接数据库且插入数据的 js代码:
var express = require("express");
var app = express();
var MongoClient = require('mongodb').MongoClient;
app.get("/",function(req,res){
//后面URL就是数据库的地址。/后面表示数据库
//假如数据库不存在,程序会帮你自动创建一个数据库
var url = 'mongodb://localhost:27017/';
//连接数据库
MongoClient.connect(url,{useNewUrlParser:true}, function(err, client) {
//回调函数表示连接成功后做的事情,db参数就是连接上的数据库实体
if(err){
console.error("数据库连接失败!");
return;
}else{
console.log("数据库连接成功!");
//获得数据库实体
var db = client.db("haha");
//要插入的数据
var data = {"name":"哈哈","age":parseInt(Math.random()*100+10)};
//插入数据到 student 集合里,集合如果不存在,程序也会帮你创建
db.collection("student").insertOne(data,function(err,result){
//插入之后做的事,result表示插入结果
if(err){
console.error("插入失败!");
}else{
console.log("插入数据成功!");
client.close(); //关闭数据库
}
});
});
res.send("ok");
});
app.listen(3005);
改变之处:
MongoClient.connect(url,{useNewUrlParser:true}, function(err, client) {});
client.close();
运行结果:
可见,已经成功连接数据库,且插入了数据。