MongoDB 安装及配置
首先你需要肯定是要安装 MongoDB 的 👀
初始化项目
初始化项目,安装 Express 框架 ,创建服务器
npm init
npm i express
在跟目录下创建入口文件app.js
// node 13.2 以上支持 ES6 Modules
// 在 package.json 中添加 "type": "module" 即可
import express from "express";
const app = express();
app.listen(5000, function () {
console.log("app is running at port 5000");
})
连接MongoDB
安装 mongoose ,配置连接文件
mongoose是node中的一个模块,让node借助这个模块来实现管理mongoDB的程序,不需要通过命令管理,而是通过程序管理连接数据库
npm i mongoose
在根目录下创建 plugins
以及其中配置文件 db.js
import mongoose from "mongoose";
const ip = 'localhost';
const port = 27017;
const dbName = 'admin';
// connect
mongoose.connect(`mongodb://${ip}:${port}/${dbName}`, {
useNewUrlParser: true
});
// connect success
mongoose.connection.on('connected', () => {
console.log('mongoose connection success');
})
// connect error
mongoose.connection.on('error', (error) => {
console.log(`mongoose connection error: ${error}`);
})
// disconnect
mongoose.connection.on('disconnected', () => {
console.log('Mongoose connection disconnected');
})
export default mongoose;
然后就可以在入口文件app.js
中导入使用
import mongoose from "./plugins/db.js";
配置数据模型
- Mongoose 一切始于 Schema
- 再将 Schema 转换于 model
- 得到 model 之后就可以进行 CUDR 了
在根目录下创建model
文件夹,配置模型,例如 Person 模型 Person.js
import mongoose from "mongoose";
const Schema = mongoose.Schema;
let PersonSchema = new Schema({
'name': String,
'age': Number,
'sex': String
})
export default mongoose.model('Person', PersonSchema, 'Person')
配置路由接口
在根目录下创建routes/admin/index.js
目录
import express from "express";
import Person from "../../model/Person.js";
const router = express.Router();
let result = {
code: 200,
msg: 'ok'
}
router.get('/getList', async (req, res) => {
let { start, limit } = req.query;
if (start == undefined) {
start = 0;
}
if(limit == undefined) {
limit = 10;
}
let data = await Person.find();
console.log(data);
res.json({...result,data})
})
export default router;
在app.js中应用路由
import apiRouter from "./routes/admin/index.js"
app.use('/api', apiRouter);
import express from "express";
import mongoose from "./plugins/db.js";
import apiRouter from "./routes/admin/index.js"
const app = express();
app.use('/api', apiRouter);
app.listen(5000, function () {
console.log("app is running at port 5000");
})
测试
node app
启动服务器
好~我们连接成功了👏
postman 测试一下
嗯~也是阔以的👏
但是我们想要在其他项目中使用的话还是要解决一下跨域,因为这个服务器是在5000端口运行的,比如 vue-cli / webpack 构建的项目 他是在其他端口运行的例如 8080…
解决跨域
解决跨域的方法有很多,代理、cors 等等
这里我采用的是 代理
webpack构建的项目,在其根目录配置文件webpack.config.json
中添加:
devServer: {
proxy: {
'/api': {
target: 'http://localhost:5000'
}
},
},
即可~
至此,我们的后台接口就欧克了🎉