thinkjs创建出的项目目录结构

thinkjs是一款基于nodekoa2.x的轻量级node服务框架

使用thinkjs创建项目

执行下面语句来创建项目

thinkjs new [project_name] 
# 例如
thinkjs new demo
# 然后安装依赖并执行
cd demo;
npm install; 
npm start;

浏览器访问http://127.0.0.1:8360/即可。

项目结构参考

使用thinkjs默认创建的项目结构如下:

|--- development.js   //开发环境下的入口文件
|--- nginx.conf  //nginx 配置文件
|--- package.json
|--- pm2.json //pm2 配置文件
|--- production.js //生产环境下的入口文件
|--- README.md
|--- src
| |--- bootstrap  //启动自动执行目录
| | |--- master.js //Master 进程下自动执行
| | |--- worker.js //Worker 进程下自动执行
| |--- config  //配置文件目录
| | |--- adapter.js  // adapter 配置文件
| | |--- config.js  // 默认配置文件
| | |--- config.production.js  //生产环境下的默认配置文件,和 config.js 合并
| | |--- extend.js  //extend 配置文件
| | |--- middleware.js //middleware 配置文件
| | |--- router.js //自定义路由配置文件
| |--- controller  //控制器目录
| | |--- base.js
| | |--- index.js
| |--- logic //logic 目录
| | |--- index.js
| |--- model //模型目录
| | |--- index.js
|--- view  //模板目录
| |--- index_index.html
|--- www
| |--- static  //静态资源目录
| | |--- css
| | |--- img
| | |--- js

[1] 运行流程及请求处理过程

数据库连接配置:
thinkjs创建出的项目目录结构_第1张图片
数据库的信息配置:
thinkjs创建出的项目目录结构_第2张图片
thinkjs创建出的项目目录结构_第3张图片

文件目录介绍及踩坑点

  • 该项目以模块划分,在一个线程中可能运行多模块功能,模块思路可参考https://www.jianshu.com/p/59c302ca365c

  • 其中控制器controller下的服务模块的要对应view层的html视图输出,否则会报template not found

  • 对于用户api类的请求,thinkjs底层已作了一层对接数据库增删查改的rest api的封装,但是对于项目运用而言,这一层处理用户api类请求的功能是无法满足开发的,因此需要我们在服务模块中自定义api类的action模块(简称url地址类的接口)

  • 在thinkjs中,我们定义一个Action 代表一个要执行的操作,也就是一个url接口。如果接口url为服务器域名地址+/home/article/detail,那服务启动后,解析后的功能模块为**/home**,模块对应控制器(在thinkjs中,一个控制器代表一个js文件,一个控制器下可以存在多个Action)为 article, Action为 detail,那么执行的 Action 就是文件 src/home/controller/aritcle 里的 detailAction (url接口的具体实现逻辑)方法

  • 跨域支持,对于一般的服务而言,前端ajax请求牵手后端服务(不同源情况下且服务设置了请求拦截)就会存在跨域问题。这个时候前后端交互就存在跨域问题,跨域在前后端都有解决方案。但对于后端服务而言,跨域就是设置允许对方服务器访问的权限,也就是访问白名单。对于thinkjs而言,可通过koa-cor模块处理跨域访问的问题,只需在src/config/middleware 中间件中允许用户请求即可解决跨域问题

[2] Node.js 国产 MVC 框架 ThinkJS 开发 入门
[3] thinkjs 简单搭建api服务
postman注意使用post方式并且传递是form
thinkjs创建出的项目目录结构_第4张图片

你可能感兴趣的:(笔记,js)