先附上项目结构
config可以放很多中间件,我在下面创了一个mongoDB的文件夹放数据连接池封装的各类 增删查改 的方法
我使用了mongoose,Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具
npm install mongoose
//db.js
let mongoose = require('mongoose');
let database_name = 'mongodb://localhost:27017/blog';
let dbData = {
selectall: function(name, callback){
mongoose.connect(database_name, (err, db) => {
let collection = db.collection(name);
collection.find().toArray((err, result) => {
if(err){
console.log('error:' + err);
return;
}
callback(result);
})
});
},
selectOne: function(name,data,callback){
mongoose.connect(database_name, (err, db) => {
let collection = db.collection(name);
collection.find(data).toArray((err, result) => {
if(err){
console.log('error:' + err);
return;
}
callback(result);
})
});
},
insert: function(name,data,callback){
mongoose.connect(database_name, (err, db) => {
let collection = db.collection(name);
collection.insert(data , (err, result) => {
if(err){
console.log('error:' + err);
return;
}
callback('插入数据成功');
})
});
}
}
module.exports = dbData;
//routes/list.js 有关于list表下的数据
const express = require('express')
const router = express()
const dbData=require('../config/mongoDB/db.js');
router.post('/', (req, res, next) => {
dbData.selectall('user', function(result){
console.log(result, 111111)
res.send(result);
})
})
router.post('/select',(req,res,next) => {
console.log(req.query)
dbData.selectOne('user',req.query,function(result){
console.log(result,22222)
res.send(result)
})
})
router.post('/add',(req,res,next) => {
console.log(req.query)
dbData.insert('user',req.query,function(result){
console.log(result,333333)
res.send(result)
})
})
module.exports = router
//app.js
const express = require("express");
const app = express();
// 跨域设置
app.all("*", function(req, res, next) {
res.header("Access-Control-Allow-Credentials", true);
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header("Content-Type", "application/json;charset=utf-8");
next();
});
// 获取内容
app.use("/list", require("./routes/list.js"));
app.get('/', (req, res) => {
res.send('api');
});
const port = process.env.PORT || 3001;
app.listen(port, () => {
console.log('Express server listening on port ' + port);
});
module.exports = app;