关于thinkjs:如何使用-ThinkJS-优雅的编写-RESTful-API

RESTful 是目前比拟支流的一种用来设计和编排服务端 API 的一种标准。在 RESTful API 中,所有的接口操作都被认为是对资源的 CRUD,应用 URI 来示意操作的资源,申请办法示意具体的操作,响应状态码示意操作后果。之前应用 RESTful 的标准写过不少 API 接口,我集体认为它最大的益处就是帮忙咱们更好的去布局整顿接口,如果还是依照以前依据需要来写接口的话接口的复用率不高不说,整个我的项目也会变得十分的芜杂。 文件即路由是 ThinkJS 的一大特色,比方 /user 这个路由等价于 /user/index,会对应到 src/controller/user.js 中的 indexAction 办法。那么就以 /user 这个 API 为例,在 ThinkJS 中要创立 RESTful 格调的 API 须要以下两个步骤: <!--more--> 运行命令 thinkjs controller user -r 会创立路由文件 src/controller/user.js在 src/config/router.js 中应用自定义路由标记该路由为 RESTful 路由 //src/config/router.jsmodule.exports = [ ['/user/:id?', 'rest']];这样咱们就实现了一个 RESTful 路由的初始化,这个资源的所有操作都会被映射成路由文件中对应申请办法的 Action 函数中,例如: GET /user 获取用户列表,对应 getAction 办法GET /user/:id 获取某个用户的详细信息,也对应 getAction` 办法POST /user 增加一位用户,对应 postAction 办法PUT /user/:id 更新一位用户材料,对应 putAction 办法DELETE /user/:id 删除一位用户,对应 deleteAction 办法然而每个 RESTful 路由都须要去 router.js 中写一遍自定义路由未免过于麻烦。所以我写了一个中间件 think-router-rest,只须要在 Controller 文件中应用 _REST 动态属性标记一下就能够将其转换成 RESTful 路由了。 ...

September 28, 2020 · 4 min · jiezi

关于thinkjs:谈谈-MySQL-的-JSON-数据类型

MySQL 5.7 减少了 JSON 数据类型的反对,在之前如果要存储 JSON 类型的数据的话咱们只能本人做 JSON.stringify() 和 JSON.parse() 的操作,而且没方法针对 JSON 内的数据进行查问操作,所有的操作必须读取进去 parse 之后进行,十分的麻烦。原生的 JSON 数据类型反对之后,咱们就能够间接对 JSON 进行数据查问和批改等操作了,较之前会不便十分多。 为了不便演示我先创立一个 user 表,其中 info 字段用来存储用户的根底信息。要将字段定义成 JSON 类型数据非常简单,间接字段名后接 JSON 即可。 CREATE TABLE user ( id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, info JSON);表创立胜利之后咱们就依照经典的 CRUD 数据操作来讲讲怎么进行 JSON 数据类型的操作。 <!--more--> 增加数据增加数据这块是比较简单,不过须要了解 MySQL 对 JSON 的存储实质上还是字符串的存储操作。只是当定义为 JSON 类型之后外部会对数据再进行一些索引的创立不便后续的操作而已。所以增加 JSON 数据的时候须要应用字符串包装。 mysql> INSERT INTO user (`name`, `info`) VALUES('lilei', '{"sex": "male", "age": 18, "hobby": ["basketball", "football"], "score": [85, 90, 100]}');Query OK, 1 row affected (0.00 sec)除了本人拼 JSON 之外,你还能够调用 MySQL 的 JSON 创立函数进行创立。 ...

September 14, 2020 · 5 min · jiezi