学习内容
登录注册接口
1. server.js
const express = require('express');
const bodyParser = require('body-parser');
const router = require('./router');
const db = require('./db/connect');
const app = express();
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.use('/api',router);
app.listen(8080,() => {
console.log('服务已开启,端口:8080');
})
2. db/connect.js
//导入模块
const mongoose = require('mongoose');
//1. 建立连接
mongoose.connect('mongodb://localhost:27017/testzzl',() => {
console.log('数据库连接成功');
})
3. db/model/userModel.js
const mongoose = require('mongoose');
//1. 创建schema对象
const usersSchema = new mongoose.Schema({
us: { type: String,required:true},
ps: { type: String,required:true},
nickname: String,
age: Number,
sex: { type: String, default: '未知' }
})
//2. 将schema 对象转为模型
const Users = mongoose.model('users',usersSchema);
module.exports = Users;
4. rouer/index.js
const router = require('express').Router();
router.use('/users',require('./userRouter'));
module.exports = router;
5. router/userRouter.js
const router = require('express').Router();
const Users = require('../db/model/userModel');
router.post('/reg',(req,res) => {
const {us,ps} = req.body;
if(!(us&&ps)){
return res.send({code: 0,msg: '参数错误'});
}
new Users({
us,
ps
})
.save()
.then(() => {
res.send({code: 1,msg: '注册成功'});
})
.catch(err => res.send({code: 0,msg: '注册失败'}))
})
router.post('/login',(req,res) => {
const {us,ps} = req.body;
if(!(us && ps)){
return res.send({code: 0,msg: '参数错误'});
}
Users.find({us,ps})
.then(data => {
if(data.length > 0){
return res.send({code: 1,msg: '登录成功'})
}else{
return res.send({code: 0,msg: '用户名或密码不正确'});
}
})
.catch(err => res.send({code: 0,msg: '内部错误'}))
})
module.exports = router;
管理系统
# 增加
1. server.js
const express = require('express');
const bodyParser = require('body-parser');
const router = require('./router');
const db = require('./db/connect');
const app = express();
app.use(express.static('./www'));
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.use('/api',router);
app.listen(8080,() => {
console.log('服务已开启,端口:8080');
})
2. db/connect.js
//导入模块
const mongoose = require('mongoose');
//1. 建立连接
mongoose.connect('mongodb://localhost:27017/testzzl',() => {
console.log('数据库连接成功');
})
3. db/foodModel.js
const mongoose = require('mongoose');
const foodSchema = new mongoose.Schema({
name: {type: String,required: true},
price: {type: String,required: true},
desc : {type: String,required: true},
typename: {type: String,required:true},
typeid: {type: Number,required:true},
img: {type:String,required: true}
})
const Food = mongoose.model('foods',foodSchema);
module.exports = Food;
4. rouer/index.js
const router = require('express').Router();
router.use('/users',require('./userRouter'));
router.use('/food',require('./foodRouter'));
module.exports = router;
5. rouer/foodRouter.js
const router = require('express').Router();
const Food = require('../db/model/foodModel');
router.post('/add',(req,res) => {
// let data = {
// name: '火山飘雪',
// price: '999',
// desc: '超好吃',
// typeid: 1,
// typename: '凉菜',
// img: '/www/img/1.jpg'
// }
const {name,price,desc,typename,typeid,img} = req.body;
new Food({name,price,desc,typename,typeid,img})
.save()
.then(() => res.send({code: 1,msg: '添加成功'}))
.catch(err => res.send({code: 0,msg: '添加失败'}));
})
module.exports = router;
# 分类查询
1. router/foodRouter.js
router.post('/getInfoByType',(req,res) => {
const { typeid } = req.body;
Food.find({typeid})
.then(data => res.send({code: 1,msg:'查询成功',info: data}))
.catch(err => res.send({code: 0,msg: '查询失败'}))
})
# 关键字查询
1. router/foodRouer.js
router.post('/getInfoByKeyword',(req,res) => {
const {kw} = req.body;
let reg = new RegExp(kw);
Food.find({$or: [{name:{$regex: reg}},{desc:{$regex:reg}}]})
.then(data => res.send({code: 1,msg: '查询成功',info: data}))
.catch(err => res.send({code: 0,msg: '查询失败'}))
})
# 分页查询
1. router/foodRouter.js
router.post('/getInfoByPage',(req,res) => {
let pagesize = req.body.pagesize || 2;
let current = req.body.page || 1;
Food.find()
.skip(Number((current - 1) * pagesize))
.limit(Number(pagesize))
.then(data => res.send({code: 1,msg: '查询成功',info: data}))
.catch(err => res.send({code: 0,msg: '查询失败'}))
})
# 删除
1. router/foodRouter.js
router.post('/del',(req,res) => {
const {_id} = req.body;
Food.deleteOne({_id})
.then(data => res.send({code: 1,msg: '删除成功'}))
.catch(err => res.send({code: 0,msg: '删除失败'}))
})
# 修改
router.post('/update',(req,res) => {
const {name,price,desc,typename,typeid,img,_id} = req.body;
Food.updateOne({_id},{name,price,desc,typename,typeid,img})
.then(data => res.send({code: 1,msg: '修改成功'}))
.catch(err => res.send({code: 0,msg: '修改失败'}))
})