ThinkJS 2.0:使用ES6/7全部特性開發Node項目

2021-01-07 CSDN技術社區

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.jsexport 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環境中。

特性

使用ES6/7全部特性來開發項目; 支持多種項目結構和多種項目環境;支持Mysql,MongoDB,SQLite等多種資料庫;代碼自動更新,無需重啟Node服務;支持socket.io,SockJS等多種WebSocket庫;支持Memory,File,Db,Redis等多種Session;支持Memory,File,Redis,Memcache等多種Cache;支持ejs,jade,swig,numjucks等多種模版引擎;支持切面編程,支持before,after等多種魔術方法;支持自定義400,404,500,503等多種錯誤頁面;支持命令行調用和執行定時任務;豐富的Hook和Middleware;詳細的日誌,如:請求日誌、錯誤日誌、性能日誌;支持命令自動創建REST API;支持國際化和多主題;豐富的測試用例,1500+測試用裡,代碼覆蓋率>95%。

安裝

npm install -g thinkjs

創建項目

thinkjs new project_path --es6

http://www.thinkjs.org/doc/create_project.html

Watch Compile

cd project_path;npm run watch-compile

啟動項目

cd project_path;npm start

文檔

原文來自:w3ctech

相關焦點

  • 找回 Node.js 裡面那些遺失的 ES6 特性
    在 Node.js 使用的 JS 引擎 V8 裡面將不同狀態 ES6 特性分成了 3 個等級:『shipping』 已經開啟的 ES6 特性本文使用的 Node.js 版本號:穩定版本:4.2.4對應 V8 引擎的版本:4.5.103.35最新版本:5.3.0對應 V8 引擎版本:4.6.85.31
  • 最新Node.js框架:Koa 2 實用入門
    本文主要koa 2的文檔解讀和runkoa介紹,讓大家對koa 2有一個更簡單直接的理解Koa 2實用入門koa2已發布了一段時間,可以考慮入手,參見Node.js最新Web技術棧(2016年4月) http://nodeonly.com/stack/本文主要是koa 2的文檔解讀和runkoa介紹,讓大家對koa 2有一個更簡單直接的理解
  • 沒有等來Node.js 2.0 Node 之父卻帶來新作Deno 1.0
    5月13日,Node 之父 Ryan Dahl 及 Deno 團隊精心籌劃2年的Deno 1.0 正式發布, 這是一個在服務端運行的、全新的 JavaScript 運行時。值得探究的是Deno 1.0並不與當前 Node.js 完全兼容,這是否意味著Deno將會取代 Node?尋找答案還需要從了解Deno 1.0開始。
  • 10 個最適合 Web 和 APP 開發的 NodeJS 框架
    Node.js Express 對於一個已經在使用 node.js 的開發人員來說,Express 或者」node.js express」並不是一個新鮮事。Express 框架提供了對 node.js 原生 API 的比較好的封裝,從而使開發者更加容易地使用node.js。 Express 框架提供了用來開發強壯的 web/移動應用,以及 API 的所有功能。
  • centos7編程實踐:安裝nodejs
    2、node.js的優勢2.1、Nodejs語法完全是js語法,只要你懂js基礎就可以學會Nodejs後端開發Node打破了過去JavaScript只能在瀏覽器中運行的局面。NodeJs不為每個客戶連接創建一個新的線程,而僅僅使用一個線程。當有用戶連接了,就觸發一個內部事件,通過非阻塞I/O、事件驅動機制,讓Node.js程序宏觀上也是並行的。使用Node.js,一個8GB內存的伺服器,可以同時處理超過4萬用戶的連接。
  • Node.js與Ruby on Rails:二者哪個最適合Web開發?
    節點和Rails用於快速開發和原型開發。Rails有很棒的摺疊特性,Express也有生成器和命令行工具。Rails 的優點1.一致的結構。2.非常堅持自我。3.資料庫遷移。4.開發速度。5.Ruby是一門偉大的語言。6.Ruby gems。7.成熟和受尊重的社區。
  • 前端頁面開發之Node JS初學者指南
    因此,Node不僅僅簡單的使用了V8,還對其進行了優化,使其在各環境下更加給力。  發展歷史  2009年2月,Ryan Dahl在博客上宣布準備基於V8創建一個輕量級的Web伺服器並提供一套庫。  2009年5月,Ryan Dahl在GitHub上發布了最初版本的部分Node.js包,隨後幾個月裡,有人開始使用Node.js開發應用。
  • 基於Nest.js + React 的開發框架 Notadd 2.0 Beta2 發布
    前言    大多數 node.js 框架都沒解決架構問題,使得 node.js 沒能像 spring
  • 如何使用Node.js上傳文件
    Node.js正在迅速成為更受歡迎的Web開發框架之一。繼續閱讀以熟悉這個強大的JavaScript技術!如今,前端開發對後端進程造成了很大的影響,尤其是在JavaScript領域。JS最初是一種針對瀏覽器的語言,已經成熟為現代工具的每一個角落。
  • node.js、MongoDB下一代的LAMP
    比如越來越多的Nginx開始取代Apache,緩存層將MySQL的功能逐漸弱化,甚至越來越多的NoSQL產品以其簡單靈活和高性能開始向MySQL的地位發起挑戰,今天要說的是一個全新的組合:Unix系列系統,加node.js,再加上MongoDB組成一個新的web開發框架。
  • Node.js 學習資料和教程(值得收藏)
    百萬級並發 Node.js也能行高性能Node.js:來自LinkedIn Mobile的10條優化建議Kraken:改變PayPal開發文化的Node.js框架Groupon拋棄Rails,轉向框架meteorHomePageMeteor-DDP翻譯Meteor 非官方中文文檔(不包含API部分)基於meteor開發的開源項目列表  基於Express
  • 前端組件/庫打包利器rollup使用與配置實戰
    前言寫rollup的文章是因為筆者最近要規範前端開發的業務流程和架構,並提供內部公有組件庫和工具庫供團隊使用。2.rollup插件使用為了更靈活的打包庫文件,我們可以配置rollup插件,比較實用的插件有:rollup-plugin-node-resolve —幫助 Rollup 查找外部模塊,然後導入rollup-plugin-commonjs —將
  • Node.js 入門到幹活,10 個項目就夠了
    1.Node.js 基礎課程從 Node.js 的基本概念入手,函數、事件、模塊,由淺入深,最終到使用 web 框架,讓你熟練掌握 Node.js 的基本編程。2.Node.js上傳文件實例主要介紹如何配合 Node.js 服務程序實現文件上傳。
  • 專門針對初學者的Node.js教程
    安裝結束後,你可以輸入一個新命令「node」。使用該「node」命令有兩種不同的方法。第一種不帶任何參數,將打開一個交互式Shell「>」(REPL: read-eval-print-loop),你可以在這裡執行JavaScript代碼。
  • 復盤node項目中遇到的13+常見問題和解決方案
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫筆者之前陸陸續續接手過幾個nodejs項目, 也參與過幾個有點意思的nodejs開源項目, 最近把其中遇到的一些問題和解決方案做一個梳理, 避免大家繼續踩坑.
  • Nodejs 14 大版本中新增特性總結
    matchAll() 方法在 Node.js v12.4.0 以上版本已支持,該方法有個限制,如果設置的正則表達式沒有包含全局模式 g ,在 Node.js v14.5.0 之後的版本如果沒有提供會拋出一個 TypeError 異常。
  • 【 Node.js】你應該知道的 NPM 知識都在這!
    /bin/vm2"  },bin 欄位指定了各個內部命令對應的可執行文件的位置。如果全局安裝模塊報,npm 會使用符號連結把可執行文件連結到 /usr/local/bin,如果項目中安裝,會連結到 ./node_modules/.bin/。
  • Vue Element+Node.js開發企業通用管理後臺系統
    2-5 關於Vue 3.0第3章 Vue進階(上)對Vue的進階知識進行講解,包括$emit和$on、directive指令、組件化、Vue插件等相關內容。6-1 vuex實現原理講解6-2 vue-router實現原理講解6-3 vue-router路由守衛6-4 vue-router路由元信息6-5 vue-router API的使用第7章 前端開發框架搭建集成 Github 4.3w+ Star的明星項目 vue-element-admin,本節將基於該項目完成前端框架搭建。
  • 你不知道的 Npm(Node.js 進階必備好文)
    /bin/vm2"  },bin 欄位指定了各個內部命令對應的可執行文件的位置。如果全局安裝模塊報,npm 會使用符號連結把可執行文件連結到 /usr/local/bin,如果項目中安裝,會連結到 ./node_modules/.bin/。
  • 【 Node.js 進階】你應該知道的 NPM 知識都在這!
    /bin/vm2"  },bin 欄位指定了各個內部命令對應的可執行文件的位置。如果全局安裝模塊報,npm 會使用符號連結把可執行文件連結到 /usr/local/bin,如果項目中安裝,會連結到 ./node_modules/.bin/。