环境准备
Bash
npm i express@next mongoose cors
创建express实例
Bash
// 创建express实例
// server\index.js
// 导入express包
const express = require("express");
// express实例化
const app = express();
// 跨域访问
app.use(require("cors"));
// 数据json
app.use(express.json());
// 引入admin route
require("./routes/admin")(app);
// 导入db config
require("./plugins/db")(app);
// 建立监听
app.listen(3000,()=>{
console.log('http://localhost:3000');
});
创建数据库插件
Bash
// 数据库插件db.js
// ./plugins/db.js
module.exports = app =>{
const mongoose = require("mongoose");
mongoose.connect('mongodb://127.0.0.1:27017/node-vue-moba',{
useNewUrlParser:true,
useUnifiedTopology:true
});
}
创建分类数据模型
Bash
// 数据model
// ./models/Category.js
// 导入包
const mongoose = require("mongoose");
// 定义schema
const scheme = new mongoose.Schema({
name:{
type : String
}
})
// 导出数据模型
module.exports = mongoose.model('Category',scheme)
创建admin路由
Bash
// 创建路由
// ./routes/admin/index.js
// 导入express包
module.exports = app =>{
const express = require("express");
// 初始化一个router
const router = express.Router();
// 引入模型
const Catergory = require("./models/Category.js");
// post方法实现
router.post('/categories',async(req,res)=>{
// 创建模型
const model = await Category.create(req.body);
// 请求响应
res.send(model)
})
app.use('/admin/api',router);
}
前端发送网络请求
Bash
// js
async save(){
// 发送post请求
await this.$http.post('categories',this.model)
// 跳转至分类列表
this.$router.push('/categories/list')
this.$message({
type: 'sucess',
message: '保存成功'
})
}
完善接口 实现增、删、改、查
Bash
// server\index.js
// admin route
module.exports = app => {
// 导入express
const express = require('express')
//
const router = express.Router()
// 引入Category数据模型
const Category = require("../../models/Category")
// post请求实现,增
router.post('/categories',async(req,res)=>{
// 创建模型
const model = await Category.create(req.body)
res.send(model)
})
// delete 删
router.delete('/categories/:id',async(req,res)=>{
// 创建模型
const model = await Category.findByIdAndDelete(req.params.id,req.body)
res.send({
success:true
})
})
// put 改
router.put('/categories/:id',async(req,res)=>{
// 创建模型
const model = await Category.findByIdAndUpdate(req.params.id,req.body)
res.send(model)
})
// console.log(router)
// get 查
router.get('/categories',async(req,res)=>{
// 创建模型
const items = await Category.find()
res.send(items)
})
// get 获取对应ID内容
router.get('/categories/:id',async(req,res)=>{
// 创建模型
const model = await Category.findById(req.params.id)
res.send(model)
})
app.use('/admin/api',router)
}