本文章最後更新時間:2018-01-19
個人部落格地址:blog.sqdyy.cn
一、內容介紹
本文將簡述如何使用vscode [Visual Studio Code]
開發工具來搭建一套TypeScript
的開發環境,其中我們會使用Express
這套靈活的web應用開發框架來提高我們的編碼效率,另外我們還會增加nodemon
這個程式來自動監控你原始碼的改變並自動重新啟動伺服器。寫這篇文章的目的是落地留痕,同時也希望能對一些剛入門的小夥伴有一定的參考價值。
閱讀本文的前置知識是需要你對webpack
和Typescript
語法有一定的瞭解,閱讀本文,你將入門:
- 使用Nodejs建立web伺服器
- 使用Express建立restful的http服務
- 使用nodemon監控伺服器檔案的變化並自動重啟伺服器
二、構建你的WEB伺服器
- 首先建立一個
server
資料夾並使用npm
命令進行初始化,我們使用typescript語言來開發我們的伺服器
npm init -y
複製程式碼
- 我們需要引入node的型別定義檔案,使用型別定義檔案的作用是使你能在typescript中使用已有的javascript的庫
npm i @types/node --save
複製程式碼
- 由於nodejs本身是不能直接識別typescript,所以我們需要將typescript編譯成javascript,所以建立下面的tsconfig.json配置檔案,用於告訴編譯器如何將typescript編譯成javascript,詳細配置請參考typescript官方文件:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"outDir": "build",
"lib": [
"es6"
]
},
"exclude": [
"node_modules"
]
}
複製程式碼
-
我們需要告知編譯器(vscode)使用這個配置檔案來編譯我們的typescript,使用快捷鍵
ctrl+shift+b
生成解決方案。 -
到這裡我們的開發環境就配置好了,現在讓我們開始編寫我們的伺服器檔案,先建立一個
server/hello_server.ts
檔案,這個伺服器非常簡單,只是接收一個http請求並響應一段文字資訊:
import * as http from 'http';
const server = http.createServer((req,resp) => {
resp.end("Hello Node!");
});
server.listen(8000);
複製程式碼
- 再次執行
ctrl+shift+b
對該檔案進行編譯,首次執行會提升缺少.vscode/tasks.json
檔案,建立它並繼續執行ctrl+shift+b
,此時根據tsconfig.json
的配置,會在build
目錄下生成編譯後的javascript程式碼:
// build/hello_server.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var http = require("http");
var server = http.createServer(function (req, resp) {
resp.end("Hello Node!");
});
server.listen(8000);
複製程式碼
- 下面我們可以通過這個檔案來啟動我們的node伺服器了,執行以下指令啟動伺服器,然後訪問
localhost:8000
:
node build/hello_server.js
複製程式碼
三、使用Express框架簡化開發
Express
是基於Node.js
平臺,快速、開放、極簡的web開發框架,使用它的理由很簡單,我們使用原始的node進行開發,需要手動處理很多問題,比如讀取檔案,路由請求,處理各種不同的請求型別。而使用Express
可以幫助你更快的處理這些事情。所以你應該到它的官網學習它。
- 首先我們安裝
express
框架:
npm install express --save
複製程式碼
- 然後我們引入
express
的型別定義檔案:
npm install @types/express --save
複製程式碼
- 現在我們可以用typescript的程式碼來使用express的API了,我們建立一個新的伺服器配置檔案
server/auction_server.ts
:
import * as express from 'express';
const app = express(); // 用於宣告伺服器端所能提供的http服務
// 宣告一個處理get請求的服務
app.get('/', (req, resp) => {
resp.send("Hello Express");
});
app.get("/products", (req, resp) => {
resp.send("接收到商品查詢請求");
});
const server = app.listen(8000, "localhost", () => {
console.log("伺服器已啟動, 地址是:http://localhost:8000");
});
複製程式碼
- 現在我們執行
ctrl+shift+b
,然後通過auction_server.js
檔案啟動node伺服器:
node build/auction_server.js
複製程式碼
四、使用nodemon工具自動重新載入伺服器
我們已經學會構建一個node伺服器了,但是它非常的不方便,當我們修改了專案程式碼後,伺服器不會自動重啟。這樣就非常的煩人,很浪費時間,於是有大神開發了自動重啟的工具nodemon
,下面我們來安裝它。
1.首先我們安裝nodemon
:
npm install -g nodemon
複製程式碼
2.執行以下命令來啟動伺服器:
nodemon build/auction_server.js
複製程式碼
其實還有更快捷的方法可以直接自動編譯同時自動重新載入伺服器,如果你有興趣,請參考這篇文章:使用vscode 搭建 typescript 的nodejs 自動編譯自動啟動服務