Skip to content

jikeytang/vyan-shop-node

Repository files navigation

vyan-shop-node

微燕商城微信端 - vyan-shop-weixin
微燕商城admin管理 - vyan-shop-admin


vyan-shop-admin 0.1.0版本成型之后,可以腾出点时间来继续下一步了,现在还处在mock数据阶段,各业务场景并不完善,数据也不能正常流转,从产品角度来看也是不可用的,这样看来服务端提供接口数据的项目也呼之欲出。初衷还是一样的,整个介绍语言通俗易懂,项目简单易跑,不求多复杂,至少要完整。有阶段性的结果,版本控制的意识,前期的需求收集做加法,后期的开发做减法。

能力有限,不足之外还有很多,正在努力完善中,路过的大佬多多指点。

纯服务端接口项目,暂无预览入口,代码地址 vyan-shop-node - Github前端 vyan-shop-admin

参考自:

1. 相关介绍

1.1 基本介绍

1.2 技术栈

技术 说明 官网
Node 基于 V8 开发平台 https://nodejs.org/zh-cn/
Express Web 应用框架 https://expressjs.com/zh-cn/
MongoDB 面向文档的数据库 https://www.mongodb.com/
Mongoose 对象模型工具 https://mongoosejs.com/
Morgan 日志中间件 https://github.com/expressjs/morgan
CORS 跨域模块 https://www.npmjs.com/package/cors
Dayjs 类似Moment日期库 https://github.com/iamkun/dayjs
Utility 工具集合 https://github.com/node-modules/utility
Nodemon 自启动工具 https://github.com/remy/nodemon
  • MongoDB MongoDB对象数据库,没有固定的模式和结构,数据以对象形式存储,对象内部为JSON。比如:
{"_id":{"$oid":"58817f9c7c3b811cf88e463c"},"cat_name":"联通手机充值卡"}
{"_id":{"$oid":"58817fa97c3b811cf88e463d"},"cat_phone":"123232434324","cat_type:"1"}

由此可看出上一行与下一行字段可以完全不一致。

  • Mongoose Mongoose封装了对MongoDB对文档的日常操作,包括增删改查等常用方法。

    1. Schema 只是一种结构约定,并不具备操作数据库的方法,比如:
    const UserSchema = new mongoose.Schema({
      username: { 
        type: String,
        required: true
      },
      password: { 
        type: String,
        required: true
      }
    })
    1. Model 除了具备Schema的结构约定之外还有操作数据库的API,比如
    UserModel.save()
    UserModel.find()
    UserModel.update()
    UserModel.remove()
  • Utility md5,sha1,sha256, hmac, decode,encode

1.3 开发工具

系统 工具 官网
VScode 主开发工具 https://code.visualstudio.com/
Webstorm 开发工具(兼Git提交) https://www.jetbrains.com/webstorm/
Atom 源码阅读工具 https://atom.io/
Cmder Cmd替代工具[windows] https://cmder.net/
Notepad2 临时单文件编辑[windows] http://www.flos-freeware.ch/notepad2.html
Postman Http请求工具 https://www.getpostman.com/
Robo 3T MongoDB可视化工具 https://robomongo.org/

1.4 文件结构

tree 命令输出结构 tree -L 3 -I "node_modules"

.
├── app                                     // 所有相关代码
   ├── controller                          // 控制器
      ├── adv.controller.js               // 常用操作/广告管理
      ├── index.js                        // 所有相关代码
      ├── order.controller.js             // 订单管理
      └── user.controller.js              // 登录用户相关
   └── models                              // 所有Model
       ├── adv.model.js                    // 常用操作/广告管理
       ├── connect.js                      // 数据库连接
       ├── order.model.js                  // 订单管理
       └── user.model.js                   // 登录用户相关
├── app.js                                  // 逻辑入口
├── config                                  // 配置目录
   └── index.js                            // 配置文件
├── nodemon.json                            // nodemon配置文件
├── package-lock.json                       
├── package.json                            
├── routes                                  // 路由控制
   └── index.js                            
└── uploads                                 // 上传目录
    └── test.txt

PS:

  • user.controller.js,user.model.js 取名的目的为多次打开相同文件容易区分
  • 纯接口项目无 public,views 目录

2. 开发约定

项目采用nodeman来启动整个服务,关于他的介绍,可以在命令行直接输入rs快速启动,在script中增加方便启动项目。

"scripts": {
  "dev": "nodemon app.js",
  "start": "nodemon app.js"
},

2.2 mlab

数据库使用在线免费mlab服务,参考自N-blog教程,本地客户端robo 3T连接教程,备选方案

2.3 代码风格

遵守eslint,并且文件vyan-shop-node/.eslintrc.json可被修改

3. 开发说明

3.1 用户登录

3.2 商品管理 此模块由天蝎完成

商品管理包含五个数据接口,四个数据操作方法,采用模块式开发的方式进行路由的编写,使其便于项目后期的拓展与修改。

商品管理的所有接口都可以通过 GET 方式访问来获取这个接口需要前端发送数据的名称与格式,这点是为了可以让前后端更好进行数据的传输。

为了避免回调地狱以及提升代码可读性从而采用 then 的方式来处理 model 方法返回的数据。这里需要注意的是:model 方法支持的回调函数 默认第一个返回参数是错误信息。

  1. '/admin/product' 全部可使用接口的描述信息
  2. '/admin/product/addItem' 用于添加商品信息
  3. '/admin/product/removeItem' 用于删除商品信息
  4. '/admin/product/updatedItem' 用于更新商品信息
  5. '/admin/product/list' 用于查询商品信息列表 接口具体内容详见文件

3.3 订单管理

4. 待开发的

  • 系统设置
  • 友情链接

About

微燕商城server端

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published