多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
示例项目服务端使用ThinkJS 3.2.10,通过RESTful API提供服务。 # 创建项目 创建目录lost,在该目录下操作: 执行`thinkjs new [project_name]`来创建项目,如: ~~~ $ thinkjs new server $ cd server $ npm install $ npm start ~~~ 执行完成后,控制台下会看到类似下面的日志: ~~~ [2019-04-25 15:21:35.408] [INFO] - Server running at http://127.0.0.1:8360 [2019-04-25 15:21:35.412] [INFO] - ThinkJS version: 3.2.10 [2019-04-25 15:21:35.413] [INFO] - Enviroment: development [2019-04-25 15:21:35.413] [INFO] - Workers: 8 ~~~ 打开浏览器访问`http://127.0.0.1:8360/`,如果是在远程机器上创建的项目,需要把 IP 换成对应的地址。 # 创建 RESTful Controller 可以通过`-r`参数来创建 REST Controller。如: ~~~ thinkjs controller event -r ~~~ 会创建下面几个文件: ~~~ create : src/controller/rest.js create : src/controller/event.js create : src/logic/event.js ~~~ 其中`src/controller/event.js`会继承`src/controller/rest.js`类,`rest.js`是 RESTful Controller 的基类,具体的逻辑可以根据项目情况进行修改。 修改rest.js文件的getAction的默认实现,增加分页查询的功能。 ```js async getAction() { let data; if (this.id) { const pk = this.modelInstance.pk; data = await this.modelInstance.where({ [pk]: this.id }).find(); return this.success(data); } const page = this.get(page); if (page) { const pageSize = this.get(pageSize) || 10; data = await this.modelInstance.page(page, pageSize).countSelect(); this.success(data); } else { data = await this.modelInstance.select(); return this.success(data); } } ``` # 添加自定义路由 RESTful Controller 创建后并不能立即对其访问,需要添加对应的自定义路由,修改路由配置文件`src/config/router.js`,添加如下的配置: ~~~js module.exports = [ [/\/event(?:\/(\d+))?/, 'event?id=:1', 'rest'], ] ~~~ 上面自定义路由的含义为: * `/\/event(?:\/(\d+))?/`URL 的正则 * `event?id=:1`映射后要解析的路由,:1 表示取正则里的 (\\d+) 的值 * `rest`表示为 REST API 通过自定义路由,将`/event/:id`相关的请求指定为 REST Controller,然后就可以对其访问了。