ThinkJS 3 正式版发布,Node.js Web 框架详解编程语言
ThinkJS是一款拥抱未来的 Node.js Web 框架,致力于集成项目最佳实践,规范项目让企业级团队开发变得更加简单,更加高效。我们的 Github 地址是: https:// github.com/thinkjs/thin kjs 欢迎大家 star~
在发布的时候,虽然我们带来了很多非常棒的功能,但我们也意识到本身的不足。针对这些问题,开发团队经过几个月的紧张开发,我们很高兴的宣布,ThinkJS迎来了新的大版本 3.0。目前该版本已经在线上多个项目中使用,简单一个命令就可以让你下载使用它:
npm install -g think-cli有哪些更新?
正如之前所说,为了解决之前遗留的不足问题我们开发了新版本,下图为我们新版的架构图。
除了引进了新的架构,对框架进行高度解构外,我们还增加了很多新的功能,优化了老版为人诟病的用法,下面就让我们来具体看看有哪些更新吧。
基于 Koa 重构框架架构相较于之前使用自身集成架构,3.0 最大的改变就是将底层架构基于 Koa 重构。重构之后的 ThinkJS 3.0 版本能完全兼容 Koa 的中间件。使用 Koa 重构主要有下面几个原因:
Koa 现在已经比较稳定,洋葱模型的中间件更能满足多维度的需求,同时中间件生态已经慢慢成熟。这些都是 ThinkJS之前所不具备的,基于 Koa 后就可以站在巨人的肩膀上,可以做的更好。
Koa 2.0 中使用更优雅的 async/await 解决异步问题,这个理念和 ThinkJS是完全一致的。借助 Babel 在 ThinkJS 2.x 版本中就可以使用这些 ES next 语法功能。随着 Node 8.x LTS 的即将发布, async/await 被原生支持后我们就可以不用借助 Babel 转译直接在生产环境中使用了。
精简核心,支持扩展和适配器
ThinkJS 2.x版本内置了很多功能,这些功能基本上是很多项目的最佳实践,但并不一是每个项目都需要这些所有的功能,但基于 2.x 的架构要实现这个需求就非常困难。所以 ThinkJS 3.0版本基于 Koa 重构后在这块做了精简,不再提供丰富的功能,而是提供一个最基本的核心,然后通过扩展满足更多的需求。
多进程模型ThinkJS 2.x单进程是可选配置,且框架设计较为简单,很多功能需要开发者手动处理。我们在 3.0 中开发了 think-cluter模块直接内置了多进程模型,最大限度的利用多核 CPU 提高响应速度。 同时,提供一套进程之间通信的方式,如::通知其他进程执行某个任务,代码在线更新后重启所有的子进程。
智能的错误提示Node.js 开发中一个比较头疼的问题就是错误处理问题,遇到问题后查错和定位问题后比较麻烦,尤其是使用了 Babel 转译之后,为此我们专门开发了 think-trace模块用来跟踪错误问题,能够更加友好的捕捉显示错误堆栈信息。
除了刚才说的一些功能,我们还有一些其它的更新要告诉大家:
重构框架数据库操作逻辑,增加 think-model, think-mongoose, think-sequelize模块完善框架数据库操作功能
最后感谢所有使用 ThinkJS框架的用户,感谢你们多年来的支持,是你们的存在让我们有了更进一步的勇气。当然还需要感谢所有为 ThinkJS 项目做过贡献的贡献者,包括代码贡献和文档贡献,你们的努力让 ThinkJS 变的越来越棒!如果没时间帮助贡献代码想用其它方式支持我们也可以通过捐赠的方式支持我们,你们的捐赠会用来帮助 ThinkJS 推广。感谢你们所有人,让我们一起拥抱 ThinkJS,期待更美好的未来吧!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11972.html
cgojava相关文章
- web前端node.js常用命令
- [html]js无缝循环滚动图片示例代码
- node.js 安装详细步骤教程
- js基础之数据类型和拷贝
- Express 基于 Node.js 平台,快速、开放、极简的 Web 开发框架
- 如何使用jscythe并通过Node.js的Inspector机制执行任意JS代码
- 建立一个node.js服务器(使用express搭建第一个Web环境)详解编程语言
- 使用express搭建第一个Web应用Node.js初学详解编程语言
- Jquery 给Js动态新添加的元素 绑定的点击事件详解编程语言
- Linux环境下配置Node.js(linux配置node)
- 快速在Linux平台上安装Node.js(node安装linux)
- 数据Node.js实现MySQL数据的同步更新(node同步mysql)
- node.js与neo4j构建扩展性Web应用(nodeneo4j)
- Exploring the Power of Linux and Node.js for Web Development: A Comprehensive Guide(linuxnodejs)
- 基于jQuery的js分页代码
- JavaScript高级程序设计阅读笔记(十三)js定义类或对象
- js读取注册表的键值示例
- js拖动div当鼠标移动时整个div也相应的移动
- 跟我学Nodejs(一)---Node.js简介及安装开发环境
- node.js中的Socket.IO使用实例
- node.js+Ajax实现获取HTTP服务器返回数据
- node.js中的console.info方法使用说明
- node.js中的fs.readlink方法使用说明
- 零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
- Node.js中的事件驱动编程详解
- 基于NodeJS的前后端分离的思考与实践(六)Nginx+Node.js+Java的软件栈部署实践