1. 简介:
在Node.js中使用MongoDb数据库,实现增删改查。
2. 安装:
npm install mongodb --save-dev
3. 使用:
var http=require('http');
var url=require('url'); //引入url模块
var app=require('./model/express-route.js'); //引入路由
var ejs=require('ejs');
var MongoClient = require('mongodb').MongoClient; /*引入数据库 MongoClient*/
var DBurl = 'mongodb://localhost:27017/student'; // 连接数据库的地址 student表示数据库的名称
http.createServer(app).listen(3000); // 创建服务
// 1. 增加数据
app.get('/add', function (req, res) {
MongoClient.connect(DBurl, function (err, db) { /*连接数据库*/
if (err) {
console.log(err);
console.log('数据库连接失败');
return;
}
db.collection('user').insertOne({
"name": "xiaoyang",
"age": 10
}, function (error, result) {
if (error) {
console.log('增加数据失败');
return;
}
res.send('增加数据成功');
db.close();/*关闭数据库*/
})
})
})
// 2. 修改数据
app.get('/edit', function (req, res) {
MongoClient.connect(DBurl, function (err, db) {
if (err) {
console.log(err);
console.log('数据库连接失败');
return;
}
db.collection('user').updateOne({ "name": "lisi" }, {
$set: {
"age": 666
}
}, function (error, data) {
if (error) {
console.log('修改数据失败');
return;
}
res.send('修改数据成功');
db.close();/*关闭数据库*/
})
})
})
// 3. 删除数据
app.get('/delete', function (req, res) {
var query = url.parse(req.url, true).query;
var name = query.name;
MongoClient.connect(DBurl, function (err, db) {
if (err) {
console.log(err);
console.log('数据库连接失败');
return;
}
db.collection('user').deleteOne({ "name": name }, function (error, data) {
if (error) {
console.log('删除失败');
return;
}
console.log(data);
res.send('删除数据成功');
db.close();
})
})
})
// 4. 查询数据
app.get('/', function (req, res) {
MongoClient.connect(DBurl, function (err, db) {
if (err) {
console.log('连接数据库失败');
return;
}
var list = []; /*放数据库里面查询的所有数据*/
var result = db.collection('user').find({});
result.each(function (error, doc) {
//console.log(doc);
if (error) {
console.log(error);
} else {
if (doc != null) {
list.push(doc);
} else { /*doc==null表示数据循环完成*/
/*获取数据以后*/
//console.log(list);
db.close();
ejs.renderFile('views/index.ejs', { list: list }, function (err, data) {
res.send(data);
})
}
}
})
//console.log(result);
})
})