MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
安装
> npm install --save mongodb
使用
// 1. 导入
const mongodb = require('mongodb');
// 2. 实例化
let mongoClient = mongodb.MongoClient;
// 3. 连接
mongoClient.connect('mongodb://127.0.0.1:27017',(err,client)=>{
// 4. 链接库和集合
let db = client.db(dbName);
let collection = db.collection(collectionName);
// 5. 集合操作
// *****
// 6. 关闭库
client.close()
});
promise封装
mongodb/index.js
连接数据库部分
const mongodb = require('mongodb')
let mongoClient = mongodb.MongoClient;
let mongodb_param = {
host: '127.0.0.1',
prot: 27017,
database: 'demo_db'
}
/**
* 连接数据库
* dbName 数据库名称
* collectionName 集合名称
* url 协议://地址:端口 mongodb://127.0.0.1:27017
*/
let connect_mongoClient = ({dbName = mongodb_param.database, collectionName, url = `mongodb://${mongodb_param.host}:${mongodb_param.prot}`})=>{
return new Promise((resolve, reject)=>{
mongoClient.connect(url, { useUnifiedTopology: true }, (error, client)=>{
if(!error){
// 链接库
let db = client.db(dbName)
// 链接集合
let collection = db.collection(collectionName)
resolve({collection, client})
} else {
reject(error)
}
})
})
}
module.exports = connect_mongoClient
mongodb/userDB.js
集合操作部分
const connect_mongoClient = require('./index')
let test_get = (callback)=>{
connect_mongoClient({collectionName: 'tbl_user'})
.then(({collection, client})=>{
// 集合操作
callback(null, '-成功-')
})
.catch((error)=>{
callback(error, null)
})
}
module.exports = {
test_get
}
routes/userRouter.js
数据处理部分
const userDB = require('../mongodb/userDB')
let test_get = (res, req)=>{
userDB.test_get((err, result)=>{
if(err){
console.log(err,'--')
return
}
// console.log(result)
req.send({data: '-成功-'})
})
}
module.exports = {
test_get
}
routes/index.js
接口部分
const express = require('express')
const router = express.Router()
const userRouter = require('./userRouter')
router.get('/test', userRouter.test_get)
module.exports = router
main.js
应用router
const express = require('express');
const app = express()
// 路由
const router = require('./routes/index')
app.use(router)
app.listen(3000, function() {
console.log(`服务器3000端口已经开启`)
})