一个迷你的 Node.js 基于 Express 的 MVR 模式的 API工程 的分析

1. 工程说明

该工程是基于 Express 库,编写的一个 API 查询返回的一个微型应用。

API Resource 就是把 API 的内容当做网络资源去处理。工程中的路由访问也是返回 API 内容资源

该工程采用 MVR 模式,即 Model-View-Route。也就是访问路由(Route)地址,返回视图(View)信息。同时,返回的内容也是从数据模型(Model)中处理组装出来的。

  关于 MVR 的个人理解:

    (MVR)模型-视图-路由 模式 不同于 (MVC)模型-视图-控制 模式。

    MVC 是以控制器来区分工程中的各种功能的实现,而 MVR 是以路由URL,绑定地址访问的方式来实现工程中各种业务功能。

    相比较而言 MVR 更扁平 因为它可以设计一系列的地址内容来进行数据的整理和组装 而 MVC 模式的地址是通过 Controller 控制器框架自行组装的,理解起来更复杂。

2. 工程目录

ntask-api
    |----libs
    |       |----boot.js # 启动文件
    |       |----middlewares.js # 配置app端口等参数
    |       |----config.js # 数据库基本参数
    |
    |----models
    |       |----tasks.js # 数据模型 tasks 数据库定义
    |       |----users.js # 数据模型 users 数据库定义
    |
    |----routes
    |       |----index.js # '/' url访问
    |       |----tasks.js # '/tasks' url访问
    |
    |----index.js # 主脚本
    |----db.js # 数据库创建连接脚本

3. 工程分析

  • 工程采用 ES6 语言编写,需要使用 babel-present-es2015 进行编译成 ES5 语言来进行执行。
  • index.js 文件中使用 consign 引入各种路径脚本资源。
  • db.js 是首先需要被 consign 加载进入系统中的,用于实现models模型定义的数据库的全局变量 db 整合入所有的数据库信息。
  • libs/config.js 记录有数据库的配置信息,本工程中采用的是 sqlite3 数据库系统,用于数据的处理。
  • models 文件夹中定义了 sqlite3 被操作的表,并且在 db.js 脚本中被引入,通过 sequelize 进行wenjj数据化,创建数据库和关联数据表等。本工程有两个数据模型,也即数据库中两个数据表,Users和Tasks,而且Users 1 -> N Tasks。
  • routes 文件夹定义了该工程API的路由信息,不同的地址对应不同的视图(此项目中的视图使用 JSON 数据返回代替)。

4. 启动工程

5. 源码

Build Apis With Node.js》(git checkout cc07683) 实现第5章节内容:Working with SQL database

> git clone https://github.com/caio-ribeiro-pereira/building-apis-with-nodejs.git

> cd building-apis-with-nodejs

building-apis-with-nodejs> git checkout cc07683

Note: checking out 'cc07683'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at cc07683 implementing chapter 5

building-apis-with-nodejs>

 

转载于:https://www.cnblogs.com/yqmcu/p/10542277.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值