自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ThinkJS 2.1版本發(fā)布 支持TypeScript且性能大幅提升

原創(chuàng)
開發(fā) 前端
類似的Node.js框架有Sails、Meteor,不過ThinkJS是國人研發(fā),更貼近國內(nèi)的真實(shí)需求。ThinkJS今日,ThinkJS 2.1版本正式發(fā)布,性能上也有了大幅提升,支持TypeScript具體內(nèi)容見下文。

ThinkJS1.0版本在2014年9月份發(fā)布,是由360奇舞團(tuán)前端工程師李成銀(welefen)主導(dǎo)設(shè)計(jì)和開發(fā),其命名和項(xiàng)目結(jié)構(gòu)上大量借鑒了ThinkPHP這個(gè)在國內(nèi)知名度很高的PHP框架。ThinkJS2.0版本于 2015年10月30發(fā)布,在1.0版本的基礎(chǔ)上做了大量改進(jìn),功能更加全面,具備可擴(kuò)展性,并且支持ES 6/7特性。今日,ThinkJS 2.1版本正式發(fā)布,其不僅支持TypeScript,性能上也有大幅提升,具體如下:

一:支持TypeScript

TypeScript 是一種由微軟開發(fā)的自由和開源的編程語言。它是 JavaScript 的一個(gè)超集,向這個(gè)語言添加了可選的靜態(tài)類型,在大型項(xiàng)目里非常有用。ThinkJS 2.1 開始支持了創(chuàng)建 TypeScript 類型的項(xiàng)目,并且開發(fā)時(shí)會(huì)自動(dòng)編譯、自動(dòng)更新,無需手工編譯等復(fù)雜的操作。細(xì)則如下:

1、創(chuàng)建 TypeScript 項(xiàng)目

2、.d.ts 文件

3、已有項(xiàng)目升級(jí)為 TypeScript 項(xiàng)目

  • 修改入口文件
  • 修改 package.json
  • 修改 .thinkjsrc
  • 下載 think.d.ts 描述文件
  • 修改文件后綴
  • 項(xiàng)目文件里添加描述文件

二:性能提升

評價(jià)一個(gè)框架是否出色,一方面看支持的功能,另一方面也要看性能。雖然 ThinkJS 更適合大型項(xiàng)目,功能和復(fù)雜度遠(yuǎn)遠(yuǎn)超過 Express 和 Koa,但性能上并不比 Express 和 Koa 遜色多少,具體的測試數(shù)據(jù)請見下圖。

注:以上數(shù)據(jù)使用分布式壓力測試系統(tǒng)測試。

從上圖中測試數(shù)據(jù)可以看到,雖然 ThinkJS 比 Express 和 Koa 性能要差一些,但差別并不大。ThinkJS 和 Sails.js 都更符合大型項(xiàng)目,但 ThinkJS 的性能要比 Sails.js 高很多。

具體測試代碼請見:https://github.com/thinkjs-team/thinkjs-performance-test,可以下載代碼在本機(jī)測試,如果使用 ab 測試工具,請注意該工具在 Mac 系統(tǒng)下很不穩(wěn)定,多次測試結(jié)果會(huì)相差很大。

三:更多特性

ThinkJS 2.1版本除了上述兩個(gè)較為突出的特性以外,更多特性如下:

  • Controller 支持子目錄的形式
  • 支持 PostgreSQL 數(shù)據(jù)庫
  • Model schema 支持默認(rèn)值
  • Hook 里的 middleware 返回 null 可以阻止后續(xù)的 middleware 執(zhí)行
  • http 和 controller 添加 display 的別名方法 render
  • 添加串行執(zhí)行方法 think.waterfall
  • Validate 支持正則
  • fetch 支持傳數(shù)據(jù)
  • Logic 支持判斷請求類型
  • 定時(shí)任務(wù)里支持直接調(diào)用 action
  • Babel 升級(jí)到 6
  • 國際化語言對大小寫不再敏感
  • 將獲取模板文件內(nèi)容改為異步
  • http 對象不在繼承自 EventEmitter 類
  • 去除 think.mode_mini 模式,controller 支持子目錄
  • 數(shù)據(jù)庫配置 name 改為 database
  • 修改現(xiàn)在的 fields 為 schema
  • 數(shù)據(jù)庫配置 pwd 改為 password
  • 優(yōu)化 http 對象生成方式,不用每次都復(fù)制
  • 過濾 .svn, .git 等隱藏類型的文件
  • 將文件 bin/index.js 移動(dòng)為 src/command.js
  • runtime 目錄移動(dòng)到項(xiàng)目根目錄下,添加 think.RUNTIME_PATH 路徑常量
  • adapter type 增加自動(dòng)轉(zhuǎn)為小寫的功能,并給出提示
  • 增加 thinkData,用于緩存系統(tǒng)常用數(shù)據(jù)
  • 合并 think.locale 和 controller.locale 方法
  • 修復(fù) nunjucks 模板繼承文件找不到的問題
  • 修復(fù) pathname 里含有轉(zhuǎn)義的 / 導(dǎo)致識(shí)別錯(cuò)誤的問題
  • 修復(fù) http.file 方法返回的數(shù)據(jù)遭到修改導(dǎo)致源數(shù)據(jù)也修改的問題
  • 修復(fù)路徑中 / 在 windows 下需要替換為 \\ 的問題
  • 修復(fù) nunjucks 下模板文件在不在根目錄導(dǎo)致報(bào)錯(cuò)的問題
  • 修復(fù) production 環(huán)境下,頁面上可能輸出敏感數(shù)據(jù)的問題
  • 修復(fù) development 模式下,JSON 數(shù)據(jù)解析失敗后沒有報(bào)錯(cuò)信息不好定位的問題
  • 修復(fù) view root_path 修改后,創(chuàng)建模塊時(shí)視圖路徑?jīng)]更新的問題
  • 修復(fù) required|int 規(guī)則校驗(yàn)不正確的問題
  • 修復(fù) redis cache 解析配置的問題
  • 修復(fù) REST API 不支持 logic 的問題
  • 修復(fù) count 方法如果傳入字段名是關(guān)鍵字會(huì)出錯(cuò)的問題

內(nèi)容來源:

官網(wǎng):https://thinkjs.org/

文檔:https://thinkjs.org/en/doc.html

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2012-10-16 14:00:08

獵豹瀏覽器

2009-08-20 08:51:49

JDK 7Java 7JVM

2010-07-30 09:34:50

網(wǎng)絡(luò)優(yōu)化安全網(wǎng)關(guān)深信服科技

2017-05-24 17:31:53

白鷺

2012-09-07 14:18:15

MongoDB 2.2

2024-11-13 10:05:56

2010-06-08 09:45:27

openSUSE 11

2012-05-07 23:45:54

FantomJavaJVM

2012-03-06 13:45:43

JavaJActor

2023-04-10 09:15:25

Vite 4.3SWC 插件

2009-06-18 09:14:47

Spring modu

2014-07-04 13:33:03

jQueryjQuery Mobi

2009-07-16 16:53:29

Jython 2.5

2012-05-09 09:11:52

Silverlight

2023-11-09 08:46:24

2015-11-16 11:31:35

Kubernetes網(wǎng)絡(luò)性能新版本特性

2021-01-22 10:22:20

Windows10操作系統(tǒng)21H2

2009-12-04 08:56:29

Qt 4.6

2021-05-25 07:36:07

iOS 14.6 App 蘋果
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)