vue项目中普通环境的搭建 (详细 新手必备) 服务端接口开发

2、服务端接口开发

2.1、服务端项目结构设计

2.1.1、设计路由

routes 目录下创建当前模块的路由文件,例如 routes/goods.js 商品模块的路由,示例代码如下:

var express = require('express')
var router = express.Router()

//处理get请求
router.get('/find', (req,res)=>{
    //接收参数
    let {id} = req.query
    
    //响应数据
    res.json({
        msg: '查询成功'
    })
})

//处理post请求
router.post('/add', (req,res)=>{
    //接收参数
    let g = req.body
    
    //响应数据
    res.json({})
})

module.exports = router

app.js 入口文件引入路由

var express = require('express')
var goodsRouter = require('./routes/goods') //引入路由

var app = express()

app.use('/goods', goodsRouter)

当前商品模块的路由访问地址为:

http://localhost:3000/goods/add (post请求)
http://localhost:3000/goods/find (get请求)

2.1.2、设计数据库模块

models 目录下创建模块文件,例如 models/goods.js 文件,示例代码如下:

var mongoose = require('mongoose')

//创建商品文档对象
var schema = new mongoose.Schema({
    title: String,
    price: Number
})
var Goods = mongoose.model('goods',schema)

文档对象的API(以 Goods 为例):

//添加数据,create(g)参数为要添加的对象,执行成功后返回的是添加成功的对象
Goods.create(g).then(rel=>{}).catch(err=>{})

//修改数据,updateOne()参数1为修改条件,参数2为要修改的新对象,返回修改的结果对象,当 rel.n > 0 时表示修改成功
Goods.updatOne(where,params).then(rel=>{}).catch(err=>{})

//删除数据,findOneAndDelete()参数为删除条件,返回删除成功的对象
Goods.findOneAndDelete(where).then(rel=>{}).catch(err=>{})

//查询所有,find()参数为查询条件
Goods.find(where).then(rel=>{}).catch(err=>{})

//排序查询所有,sort()参数为排序条件 {price: 1}为价格升序,{price: -1}为价格降序,多条件语法 {price:1, sal: -1}
Goods.find().sort({price: -1}).then(rel=>{}).catch(err=>{})

//分页查询,start表示查询的起始位置(索引),pageSize表示每页查询的条数
//start = (当前页码 - 1) × 每页条数
Goods.find().skip(start).limit(pageSize).then(rel=>{}).catch(err=>{})

//查询总记录数,find()参数为查询条件,返回当前数据的总数量
//总页数 = Math.ceil(count/pageSize)
Goods.find(where).count().then(rel=>{}).catch(err=>{})
Goods.find(where).countDocuments().then(rel=>{}).catch(err=>{})

//模糊查询,查询对象为一个包含正则表达式的条件对象
Goods.find({title: {$regex:  /['裤']|['男']/}}).then(rel=>{}).catch(err=>{})

//比较查询,查询条件中 $gt表示大于,$lt表示小于
Goods.find({price: {$gt: 200, $lt: 300}}).then(rel=>{}).catch(err=>{})

在路由文件中引入当前的文档对象,例如:在 routes/goods.js 路由文件中引入 models/goods.js,示例代码如下:

var express = require('express')
var router = express.Router()
var Goods = require('../models/goods') //引入商品文档对象,使用Goods对象操作数据库

//查询所有
router.get('/find', (req,res)=>{
    //接收参数
    let {_id} = req.query
    
    //操作数据库
    Goods.find({_id}).then(result=>{
        res.json({
            msg: '查询成功'
        })
    }).catch(err=>{
        res.json({
            msg: '查询时出现异常'
        })
    })
    
})

//查询单条数据
router.get('/findOne', (req,res)=>{
    
})

//添加
router.post('/add', (req,res)=>{
    
})

//修改
router.post('/update', (req,res)=>{
    
})

//删除
router.get('/del', (req,res)=>{
    
})

module.exports = router
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃囍囍丸子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值