国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用 TypeScript 開發(fā) HapiJS 應(yīng)用

cheukyin / 2294人閱讀

摘要:配置設(shè)計項(xiàng)目文件目錄結(jié)構(gòu)在項(xiàng)目的根目錄下,創(chuàng)建一個名為的目錄,用于包含系統(tǒng)的所有源代碼文件,接著,創(chuàng)建一個名為的目錄,用于保存由編譯后的文件。

初始化 npm 項(xiàng)目
yarn init
添加依賴
yarn add hapi
添加開發(fā)依賴

要在開發(fā)中使用 TypeScrip,同時至少需要有一個工具,可以一直監(jiān)聽項(xiàng)目文件的變更,并實(shí)時的將變更更新至啟動的服務(wù)中,我選擇使用 Nodemon,首先添加以下幾個開發(fā)依賴

yarn add typescript -D
yarn add nodemon -D

接下來,我們需要為 nodehapi 安裝類型定義庫:

yarn add @types/node -D
yarn add @types/hapi -D

安裝完成之后, package.json 文件看起來像下面這樣的:

{
  "name": "hapiserver",
  "version": "0.0.1",
  "description": "API server",
  "main": "index.js",
  "author": "Your Name",
  "license": "MIT",
  "dependencies": {
    "hapi": "^18.1.0"
  },
  "devDependencies": {
    "@types/hapi": "^18.0.2",
    "@types/node": "^12.0.2",
    "nodemon": "^1.19.0",
    "typescript": "^3.4.5"
  }
}
注意:你的 dependenciesdevDependencies 配置中,版本號可能與我的不同。
配置 TypeScript 設(shè)計項(xiàng)目文件目錄結(jié)構(gòu)

在項(xiàng)目的根目錄下,創(chuàng)建一個名為 src 的目錄,用于包含系統(tǒng)的所有源代碼文件,接著,創(chuàng)建一個名為 dist 的目錄,用于保存由 typescript 編譯后的 javascript 文件。

注意:文件結(jié)構(gòu)并不是強(qiáng)制的,你可以完全按照自己的習(xí)慣和規(guī)范來進(jìn)行
.
├── dist
├── node_modules
├── package.json
├── src
└── yarn.lock
tsconfig.json

TypeScript 會查詢名為 tsconfig.json 的配置文件來查找項(xiàng)目的入口文件以及編譯設(shè)置,關(guān)于它的詳細(xì)使用說明,可以從 https://www.typescriptlang.org/docs/handbook/tsconfig-json.html 查閱,在這里,我們先填入以下內(nèi)容:

{
  "compilerOptions": {
    "outDir": "./dist",
    "allowJs": false,
    "target": "es6",
    "sourceMap": true,
    "module": "commonjs",
    "moduleResolution": "node"
  },
  "include": ["./src/**/*"],
  "exclude": ["node_modules"]
}

tsconfig.json 文件中,我們定義了 outDir 的值為 ./dist,它告訴編譯器,編譯后的輸出目錄為 ./dist 文件夾,現(xiàn)在可以直接在項(xiàng)目根目錄執(zhí)行以下代碼,即可編譯 src 目錄下的 TypeScript 代碼至 dist 目錄下的 JavaScript 文件了。

node_modules/typescript/bin/tsc
用 TypeScript 開發(fā) Hapi 服務(wù)應(yīng)用

src 目錄下,創(chuàng)建一個名為 server.ts 的文件,內(nèi)容如下:

import * as hapi from "hapi";

// 創(chuàng)建一個服務(wù)器,監(jiān)聽 `localhost` 上的 `8000` 商品
const server: hapi.Server = new hapi.Server({
  host: "localhost",
  port: 8000
});

// 添加路由
server.route({
  method: "GET",
  path: "/hello",
  handler: function(request, h) {
    return "Hello! TypeScript!";
  }
});

// 啟動服務(wù)
async function start() {
  try {
    await server.start();
  } catch (err) {
    console.log(err);
    process.exit(1);
  }
  console.log("Server running at:", server.info.uri);
}

// 不要忘記啟動服務(wù)
start();

由于我們的代碼是由 TypeScript 寫的,所以現(xiàn)在還沒有辦法直接運(yùn)行,需要先將其編譯為 JavaScript 代碼之后再運(yùn)行:

使用下面的命令編譯代碼:

node_modules/typescript/bin/tsc

編譯完成之后,將得到下面這樣的兩個文件:

dist
├── server.js
└── server.js.map

此時,執(zhí)行下面的代碼,啟動服務(wù):

node dist/server.js

啟動成功之后,終端將顯示:

Server running at: http://localhost:8000

使用 curl 測試一下我們的服務(wù):

$ curl -i http://localhost:8000/hello
HTTP/1.1 200 OK
content-type: text/html; charset=utf-8
cache-control: no-cache
content-length: 18
accept-ranges: bytes
Date: Fri, 17 May 2019 01:58:50 GMT
Connection: keep-alive

Hello! TypeScript!

已經(jīng)啟動成功了。

完成所有配置

我們總不能每改一次代碼,都手工執(zhí)行一次編譯,再重新啟動服務(wù),可以在 package.json 中添加兩個命令:

{
  ...
  "scripts": {
    "start": "./node_modules/nodemon/bin/nodemon.js -e ts  --exec "yarn run compile"",
    "compile": "tsc && node ./dist/server.js"
  },
  ...
}

現(xiàn)在,只需要在項(xiàng)目根目錄下執(zhí)行以下代碼,即可啟動一個實(shí)時編譯代碼并自動重新服務(wù)的開發(fā)環(huán)境了:

yarn start

它的作用是:nodemon 啟動一個服務(wù),監(jiān)聽文件的變更,當(dāng)有任何文件變更之后,執(zhí)行 yarn run compile 命令(即執(zhí)行:tsc && node ./dist/server.js,以重啟服務(wù)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/19556.html

相關(guān)文章

  • 使用 TypeScript 開發(fā) HapiJS 應(yīng)用

    摘要:配置設(shè)計項(xiàng)目文件目錄結(jié)構(gòu)在項(xiàng)目的根目錄下,創(chuàng)建一個名為的目錄,用于包含系統(tǒng)的所有源代碼文件,接著,創(chuàng)建一個名為的目錄,用于保存由編譯后的文件。 初始化 npm 項(xiàng)目 yarn init 添加依賴 yarn add hapi 添加開發(fā)依賴 要在開發(fā)中使用 TypeScrip,同時至少需要有一個工具,可以一直監(jiān)聽項(xiàng)目文件的變更,并實(shí)時的將變更更新至啟動的服務(wù)中,我選擇使用 Nodemon,...

    yagami 評論0 收藏0
  • hapi 起步

    摘要:最近一直在學(xué)習(xí),有點(diǎn)的基礎(chǔ)以為會容易呢,但是全英文的,不同于的實(shí)現(xiàn)方式,看起來大寫的懵啊,整理此文,希望能夠幫助到一些想要入門的新人。,項(xiàng)目啟動成功。若要在路徑中命名參數(shù),只需用將其包裝。 最近一直在學(xué)習(xí)hapiJs,有點(diǎn)koa2的基礎(chǔ)以為會容易呢,但是全英文的API,不同于koa2的實(shí)現(xiàn)方式,看起來大寫的懵啊,整理此文,希望能夠幫助到一些想要入門hapi的新人。 1、搭建項(xiàng)目 1.1...

    dendoink 評論0 收藏0
  • 小程序開發(fā)(一):使用scrapy爬蟲采集數(shù)據(jù)

    摘要:用途廣泛,可以用于數(shù)據(jù)挖掘監(jiān)測和自動化測試。運(yùn)行下,發(fā)現(xiàn)數(shù)據(jù)全部存到了數(shù)據(jù)庫中。提供了一些接口來查看項(xiàng)目爬蟲情況,以及執(zhí)行或者停止執(zhí)行爬蟲。完成小程序所需要的所有接口的開發(fā),以及使用定時任務(wù)執(zhí)行爬蟲腳本。 過完年回來,業(yè)余時間一直在獨(dú)立開發(fā)一個小程序。主要數(shù)據(jù)是8000+個視頻和10000+篇文章,并且數(shù)據(jù)會每天自動更新。 我會整理下整個開發(fā)過程中遇到的問題和一些細(xì)節(jié)問題,因?yàn)閮?nèi)容會比...

    mrli2016 評論0 收藏0
  • 搭建公眾號自動回復(fù)功能

    摘要:今天的主角是如何搭建一個公眾號自動回復(fù)功能。對于大網(wǎng)站或者項(xiàng)目來說,找一家如阿里云騰訊云等云服務(wù)平臺,但對于個人只是想簡單的搭建一個公眾號管理自動回復(fù)功能,終究有些大材小用了結(jié)合使用相得映彰,而且可以根據(jù)需要升級擴(kuò)展。 程序員愛炫技,寫個公眾號文章,都想拿點(diǎn)技術(shù)整整【自動回復(fù)】;程序員愛偷懶,什么都想做個【自動化】,最好所有事情系統(tǒng)都給做了,點(diǎn)點(diǎn)手指頭就能達(dá)到目標(biāo)。 今天的主角是如何搭...

    MobService 評論0 收藏0
  • NPM酷庫043:joi,語義化模式驗(yàn)證

    摘要:酷庫,每天兩分鐘,了解一個流行庫。在酷庫中,我們了解到了數(shù)據(jù)模式驗(yàn)證,以及庫。是語義化的對象數(shù)據(jù)模式驗(yàn)證庫,所謂語義化,是指其方法名能夠明確表達(dá)其含義。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· 在NPM酷庫042中,我們了解到了JSON Schema數(shù)據(jù)模式驗(yàn)證,以及ajv庫。今天我們來學(xué)習(xí)另一個對象數(shù)據(jù)驗(yàn)證的庫joi。 joi joi 是語義化的對象數(shù)據(jù)模式驗(yàn)證庫,所謂語義...

    2bdenny 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<