<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 介紹 ThinkJS 是一款面向未來開發的 Node.js 框架,整合了大量的項目最佳實踐,讓企業級開發變得如此簡單、高效。從 3.0 開始,框架底層基于 Koa 2.x 實現,兼容 Koa 的所有功能。 # 特性 * 基于 Koa 2.x,兼容 middleware * 內核小巧,支持 Extend、Adapter 等插件方式 * 性能優異,單元測試覆蓋程度高 * 內置自動編譯、自動更新機制,方便快速開發 * 使用更優雅的 `async/await` 處理異步問題 * 從 3.2 開始支持 [TypeScript](http://www.typescriptlang.org/) # 架構 ![](https://box.kancloud.cn/d5ddd84c2c1fbe0148415902774f6894_1000x777.png) ### 快速入門 借助 ThinkJS 提供的腳手架,可以快速的創建一個項目。為了可以使用更多的 ES6 特性,框架要求 Node.js 的版本至少是 `6.x`,建議使用 [LTS 版本](https://nodejs.org/en/download/)。 ### 安裝 ThinkJS 命令 ~~~ $ npm install -g think-cli ~~~ 安裝完成后,系統中會有 thinkjs 命令(可以通過 thinkjs -V 查看 think-cli 的版本號,此版本號非 thinkjs 的版本號)。如果找不到這個命令,請確認環境變量是否正確。 如果是從 2.x 升級,需要將之前的命令刪除,然后重新安裝。 ### 卸載舊版本命令 ~~~ $ npm uninstall -g thinkjs ~~~ ### 創建項目 執行 thinkjs new \[project\_name\] 來創建項目,如: ~~~ $ thinkjs new demo; $ cd demo; $ npm install; $ npm start; ~~~ 執行完成后,控制臺下會看到類似下面的日志: ~~~ [2017-06-25 15:21:35.408] [INFO] - Server running at http://127.0.0.1:8360 [2017-06-25 15:21:35.412] [INFO] - ThinkJS version: 3.0.0-beta1 [2017-06-25 15:21:35.413] [INFO] - Enviroment: development [2017-06-25 15:21:35.413] [INFO] - Workers: 8 ~~~ 打開瀏覽器訪問 http://127.0.0.1:8360/,如果是在遠程機器上創建的項目,需要把 IP 換成對應的地址。 ### 項目結構 默認創建的項目結構如下: ~~~ |--- 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 ~~~ 4. 項目服務啟動 入口文件是 development.js,啟動時直接和一般的node啟動一樣 node development.js即可。查看入口文件可知啟動的時候,實際上是實例化 ThinkJS 里的 Application 類,執行 run 方法。 5.配置數據庫 本項目使用mysql數據庫,配置文件的位置:src/config/adapter.js ~~~ exports.model = { type: 'mysql', common: { logConnect: isDev, logSql: isDev, logger: msg => think.logger.info(msg) }, mysql: { handle: mysql, database: 'thinkjsplus', prefix: '', encoding: 'utf8', host: '127.0.0.1', port: '3306', user: 'root', password: 'root', dateStrings: true } }; ~~~ 5.1 創建模型文件 ~~~ thinkjs model +模型文件名 ~~~ 6. 控制器 創建控制器的命令是 thinkjs controller +控制器名,我們創建admin后臺登錄控制器,同時在視圖層我們創建admin控制器對應的html頁面admin\_index.html頁面,啟動服務,瀏覽器訪問[http://localhost:8360/admin就可以訪問到admin\_index.html的登錄頁面](http://localhost:8360/admin%E5%B0%B1%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%E5%88%B0admin_index.html%E7%9A%84%E7%99%BB%E5%BD%95%E9%A1%B5%E9%9D%A2). ~~~ thinkjs controller admin ~~~ ~~~javascript const user = this.model('thinkjsplus_user'); // controller 里實例化模型 const data = await user.select(); this.assign('title',data); return this.display(); ~~~ 7. 視圖 thinkjs3默認模板引擎是 nunjucks,如果在控制器action中這樣寫 ~~~javascript this.assign('title',"測試網頁之thinkjsplus!"); return this.display(); ~~~ 視圖html頁面中就可以這樣寫,拿到title ~~~~~~javascript {{title}} ~~~ 8. 權限控制 權限代碼如下: ~~~javascript module.exports = class extends think.Controller { async __before() { if(this.ctx.controller === 'admin' && this.ctx.action === 'index'||this.ctx.action === 'login' ){ //如果是admin_index那么久不驗證了,直接返回給予登錄。 return; } let userinfo =await this.session('userinfo') if (!think.isEmpty(userinfo)){ this.assign('userinfo',userinfo); }else{ return this.redirect('/admin/index'); } } ~~~ 9.本項目用到了mysql數據庫,CRUD操作具體可以查看項目,本項目具有詳細注釋 ~~~javascript /** * 保存分類 */ async saveAction() { let data = this.post(); if (think.isEmpty(data.id)) { //保存 let res = await this.model("thinkjsplus_category").add(data); if (res) { this.json({"succ":true}); } else { this.json({"succ":false}); } } else { //更新 let res = await this.model("thinkjsplus_category").update(data); if (res) { this.json({"succ":true}); } else { this.json({"succ":false}); } } } /** * 刪除分類 */ async delAction() { let categoryModel = this.model("thinkjsplus_category"); let posts = this.post("id"); let delNums = categoryModel.where({id: ['IN', posts]}).delete(); if(delNums){ this.json({"succ":true}); }else{ this.json({"succ":false}); } } /** * 查看分類 */ async listAction() { const user = this.model('thinkjsplus_category'); // controller 里實例化模型 const data = await user.select(); return this.json(data); } ~~~ 10.運行 首先安裝mysql,之后導入項目sql文件夾,然后在項目根目錄下運行 npm install,之后運行 npm start,即可啟動本項目
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看