zoukankan      html  css  js  c++  java
  • node小程序购物车接口

    1. 建模:
      sequelize model:generate --name Cart --attributes productId:integer,userId:integer,number:integer
      推模: sequelize db:migrate
    2. 创建一个 cart.js,  然后在app.js中引入这个文件
    3. 为调试方便,先在路由中间件中,加上不要验证cart路由地址
    4. 因为当前购物车表和商品表还有用户表(购物车商品属于哪个用户),所以要建立关联:
      image
    5. 在 cart.js里 创建一个  post接口:  根据小程序扫到的条形码 ,来搜索Product商品表里面有没有这个 条形码对应的商品
    6. 如果Product表里  ,没有这个条形码的商品:
      image
      image
    7. 如果Product表里, 有这个商品:   就查询这个商品 在不在购物车Cart表中
    8. 如果购物车Cart表里 没有这个商品, 就在购物车添加这个商品
      image
      image
      image
    9. 如果购物车表中 已经有这个商品存在 ,  就把当前的商品数量  number增加1
      image
      image
      image
    10. 代码:
    11. var express = require('express');
      var router = express.Router();
      var models = require('../../models')
      
      router.post('/',async function(req,res,next){
          var code = req.body.code;// 这里的code是 扫描进去的条形码
          // 1.根据扫入的条形码 来搜索 Product表中,有没有这个商品
          let product = await models.Product.findOne({
              where:{
                  code:code,
              }
          })    
          // 2.如果Product表中没有这个商品,就返回
          if(!product){
              res.json({success:false,message:'此商品不存在'})
              return;
          }
          // 3.如果Product表中有这个商品,
          //  就查询这个商品 在不在购物车Cart表中   created:不存在为true,存在false
          let [cart,created] = await models.Cart.findOrCreate({
              where:{
                  productId:product.id,
                  userId: 9/*req.decoded.user.id*/
              },
              // 如果这个商品不在购物车中的话, 就把这个商品添加进购物车
              defaults:{
                  number:1,
                  userId: 9 /*req.defaults.user.id*/,
                  productId:product.id
              }
          })
          // 4. 9.如果购物车表中 已经有这个商品存在 
          if(!created){
              let cart = await models.Cart.findOne({
                  where:{productId:product.id}
              })
              cart.increment('number')// 就把当前的商品数量  number增加1
              return res.json({success:true,message:'增加成功'})
          }
          res.json({success:true,message:'添加成功',data:cart})
      })
      
      module.exports = router;
  • 相关阅读:
    Android开发 Android Studio2.0 教程从入门到精通Windows版
    SQLSERVER 执行过的语句查询
    通过身份证分析出生年月日、性别、年龄的SQL语句
    SQL 根据日期精确计算年龄
    SQL 语句转换格式函数Cast、Convert
    Delphi 单元
    【转】实现Ribbon风格的窗体
    Delphi的打开文件对话框-TOpenDialog
    Delphi数据类型转换
    深入理解javascript中的立即执行函数(function(){…})()
  • 原文地址:https://www.cnblogs.com/cl1998/p/13170541.html
Copyright © 2011-2022 走看看