ThinkJS 是一款使用 ES6/7 特性全新开发的 Node.js MVC 框架,使用 ES7 中 async/await
,或者 ES6 中的 Generator Function
特性彻底解决了 Node.js 中异步嵌套的问题。同时吸收了国内外众多框架的设计理念和思想,让开发 Node.js 项目更加简单、高效。
使用 ES6/7 特性来开发项目可以大大提高开发效率,是趋势所在。并且新版的 Node.js 对 ES6 特性也有了较好的支持,即使有些特性还没有支持,也可以借助 Babel 编译来支持。
//控制器代码示例, home/controller/user.js export default class extends think.controller.base { //login action async loginAction(self){ //如果是get请求,直接显示登录页面 if(this.isGet()){ return this.display(); } //这里可以通过post方法获取所有的数据,数据已经在logic里做了校验 let data = this.post(); let md5 = think.md5('think_' + data.pwd); //用户名和加密后的密码去匹配数据库中对于的条目 let result = await this.model('user').where({name: data.name, pwd: md5}).find(); //如果未匹配到任何数据,表示用户名或者密码错误 if(think.isEmpty(result)){ return this.fail('login fail'); } //获取到用户信息后,将用户信息写入session await this.session('userInfo', result); return this.success(); } }
项目中可以大胆使用 ES6/7 里的所有特性,借助 Babel 编译,可以稳定运行在 >=0.12.0
的 Node.js 环境中。
npm install -g thinkjs
thinkjs new project_path --es6
http://www.thinkjs.org/doc/create_project.html
cd project_path; npm run watch-compile
cd project_path; npm start
扫码关注w3ctech微信公众号