最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用?Koa?+?TS?+?ESLlint?搭建node服務(wù)器的過程詳解

 更新時(shí)間:2022年05月28日 11:29:32   作者:Drive  
這篇文章主要介紹了使用?Koa?+?TS?+?ESLlint?搭建node服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

初始化項(xiàng)目

環(huán)境準(zhǔn)備

與之前使用JavaScript 開發(fā)后臺(tái)不同,區(qū)別如下:

  • 自動(dòng)編譯運(yùn)行的插件由nodemon替換為ts-node-dev。
  • TypeScript環(huán)境下,需要使用到ES6模塊化規(guī)范。而非CommonJS規(guī)則。
  • 使用TypeScript語法進(jìn)行開發(fā),再開發(fā)結(jié)束后,需要進(jìn)行編譯打包為JavaScript去運(yùn)行。

安裝環(huán)境

yarn global add ts-node-dev typescript

ts-node-dev:與nodemon功能類似,在修改代碼之后,保存即可生效,無需手動(dòng)重啟。

# 例如
ts-node-dev src/app.ts

# 如果想要監(jiān)聽文件的改變需要加上 --respawn 參數(shù)
ts-node-dev --respaswn src/app.ts

# 使用簡(jiǎn)短的別名
tsnd --respawn src/app.ts

初始化 tsconfig.json

# 生成tsconfig.json
tsc --init

修改tsconfig.json如下:

{
	"compilerOptions": {
		"target": "esnext", // 目標(biāo)語言版本
		"module": "commonjs", // 指定生成代碼的模板標(biāo)準(zhǔn)
		"sourceMap": true,
		"outDir": "./dist",
		"rootDir": "./src", // 指定輸出目錄, 默認(rèn)是dist文件夾
		"strict": true,
		"esModuleInterop": true,
		"allowSyntheticDefaultImports": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true
	},
	// 需要編譯的的文件和目錄
	"include": ["src"],
	"exclude": ["node_modules", "dist", "public"]
}

簡(jiǎn)單搭建 Koa 服務(wù)器

# 依賴安裝
yarn add koa
yarn add typescript -D
# 依賴注解
yarn add @types/koa -D

app.ts中實(shí)例化一個(gè)服務(wù)器。

import Koa, { DefaultContext, DefaultState, Context } from 'Koa'
const app: Koa<DefaultState, DefaultContext> = new Koa()
app.use(async (ctx: Context) => {
	ctx.body = 'coderlzw'
})
app.listen(3000, () => {
	console.log('服務(wù)啟動(dòng)成功,running http://127.0.0.1:3000')
})

package.json中添加調(diào)試腳本:

"scripts": {
  "dev": "ts-node-dev --respawn app.ts"
}

啟動(dòng)服務(wù):

現(xiàn)在,我們使用KoaTypeScript搭建了一個(gè)簡(jiǎn)單的服務(wù)器,我們http://127.0.0.1:3000便可以再瀏覽器中看到”coderlzw“

完整項(xiàng)目搭建

依賴安裝

# 依賴安裝
yarn add koa koa-router koa-cors koa-bodyparser dotenv
yarn add ts-node-dev npm-run-all typescript -D
# 依賴注解
yarn add @types/koa @types/koa-bodyparser @types/koa-router  @types/koa-cors -D

dotenv是一個(gè)零依賴的模塊,它能將環(huán)境變量中的變量從.env文件加載到process.env中。

  • 在根目錄下創(chuàng)建.env文件

    HOST=localhost
    PORT=3000
  • *.js/*.ts中使用

    import dotenv from 'dotenv'
    dotenv.config()
    const { PORT, HOST } = process.env

npm-run-all是一個(gè)批量執(zhí)行npm腳本的工具。

構(gòu)建目錄結(jié)構(gòu)

service
├─ package.json
├─ ??src
│   ├─ ??app
│   ├─ ??config
│   ├─ ??constants
│   ├─ ??controller
│   ├─ ??main.ts
│   ├─ ??middleware
│   ├─ ??router
│   ├─ ??service
│   └─ ??utils
├─ .env
├─ tsconfig.json
└─ yarn.lock

修改 package.json

{
	"script": {
		"dev": "tsnd --respawn src/main.ts",
		"build": "npm-run-all resetFolder compile",
		"compile": "tsc", // 編譯typescript
		"resetFolder": "rimraf dist/*" // 清空dist文件夾
	}
}

當(dāng)我們?cè)陂_發(fā)環(huán)境的時(shí)候,只需要執(zhí)行yarn dev即可成功啟動(dòng)服務(wù)。

當(dāng)我們執(zhí)行編譯打包的時(shí)候,根據(jù)tsconfig.json中的配置輸出到指定的目錄。

在項(xiàng)目部署后,我們只需要運(yùn)行dist/main.js文件即可啟動(dòng)服務(wù)。

代碼規(guī)范

eslint

官網(wǎng): eslint.bootcss.com

eslint能夠幫助我們規(guī)范編碼,比如字符串使用哪種引號(hào),代碼結(jié)尾是否要有分號(hào)等等。

  • 安裝依賴包

    yarn add eslint -D
  • 使用如下命令初始化eslint配置,會(huì)在項(xiàng)目更目錄生成.eslintrc.js配置文件。

    eslint --init

接著我們?cè)诿钚袌?zhí)行:npx eslint src/** --fix,執(zhí)行eslint提供的代碼的自動(dòng)修復(fù)。

修改package.json,添加運(yùn)行腳本。

"scripts": {
    "lint": "eslint src/** --fix",		// 使用eslint規(guī)則格式化代碼
 }

現(xiàn)在我們可以通過命令來處理代碼風(fēng)格問題,但是我們更加希望在保存的時(shí)候自動(dòng)處理代碼分格,這時(shí)候就需要使用到vscode編輯器的插件ESLint,通過此插件和vscode編輯器配置便可以實(shí)現(xiàn)保存的時(shí)候自動(dòng)格式化代碼。

// vscode 配置自動(dòng)格式化
"editor.codeActionsOnSave": {
    "source.fixAll": true
 }

現(xiàn)在我們通過如上的配置,在保存的時(shí)候就會(huì)自動(dòng)處理代碼風(fēng)格問題。

prettier

前面所提到的eslint主要做兩件事情,一是修復(fù)代碼質(zhì)量,二是修改代碼分格。

如果你不喜歡eslint自帶的格式化方式,就可以使用prettier來格式化代碼分格。

官網(wǎng): prettier.io/

yarn add prettier -D
復(fù)制代碼

在項(xiàng)目更目錄下配置.prettierrc

{
	"useTabs": false,
	"tabWidth": 2,
	"printWidth": 100,
	"singleQuote": true,
	"trailingComma": "none",
	"bracketSpacing": true,
	"semi": false
}

在項(xiàng)目更目錄運(yùn)行如下命令,格式化項(xiàng)目所有文件。

npx prettier --write .

但是當(dāng)我們執(zhí)行完后,會(huì)發(fā)現(xiàn)eslint又報(bào)錯(cuò)了。這是因?yàn)?code>eslint和prettier的沖突所導(dǎo)致的。這時(shí)候我們需要關(guān)閉prettiereslint格式所產(chǎn)生的沖突。

yarn add eslint-config-prettier -D

然后在.eslintrc.js加入perttier擴(kuò)展,配置后沖突的問題就解決了,代碼分格就由prettier來處理。

extends: ['standard', 'prettier']

現(xiàn)在我們希望在保存的時(shí)候按照prettier的代碼分格格式化代碼。eslint-plugin-prettier

yarn add eslint-plugin-prettier -D

eslintrc.js的最終配置如下:

module.exports = {
	env: {
		browser: true,
		es2021: true
	},
	extends: ['standard', 'plugin:prettier/recommended'], // 修改此處
	parser: '@typescript-eslint/parser',
	parserOptions: {
		ecmaVersion: 'latest',
		sourceType: 'module'
	},
	plugins: ['@typescript-eslint'],
	rules: {
		camelcase: 0 // 駝峰命名
	}
}

最后,實(shí)現(xiàn)了一個(gè)小案例:gitee.com/coderlzw/ko…

到此這篇關(guān)于使用 Koa + TS + ESLlint 搭建node服務(wù)器的文章就介紹到這了,更多相關(guān)node服務(wù)器搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Windows上搭建自己的Git服務(wù)器的圖文教程

    在Windows上搭建自己的Git服務(wù)器的圖文教程

    這篇文章主要為大家詳細(xì)介紹了如何在 Windows10 Professional 服務(wù)器上搭建自己的 Git 服務(wù)器,文中通過圖文詳細(xì)的介紹了搭建步驟,需要的可以參考下
    2023-08-08
  • 服務(wù)器購買和初步搭建的方法

    服務(wù)器購買和初步搭建的方法

    這篇文章主要介紹了服務(wù)器購買和初步搭建的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 服務(wù)器封UDP和封國(guó)外是什么意思? 封UDP和封海外云服務(wù)器選擇!

    服務(wù)器封UDP和封國(guó)外是什么意思? 封UDP和封海外云服務(wù)器選擇!

    很多人在租用高防云服務(wù)器的時(shí)候,都會(huì)看到關(guān)于防御會(huì)有介紹是否封國(guó)外、封UDP,封海外就是封住海外的攻擊,而封UDP則使UDP攻擊無效,所以防御上面封UDP的機(jī)器比不封UDP的要強(qiáng)一些,下面給大家簡(jiǎn)單介紹一下封UDP和封國(guó)外是什么意思,有什么用
    2023-05-05
  • 寶塔面板中mongodb的配置教程分享

    寶塔面板中mongodb的配置教程分享

    MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案,下面我們來講講如何在寶塔面板中配置mongodb吧
    2023-08-08
  • 服務(wù)器間如何實(shí)現(xiàn)文件共享

    服務(wù)器間如何實(shí)現(xiàn)文件共享

    這篇文章主要介紹了服務(wù)器間如何實(shí)現(xiàn)文件共享,包括服務(wù)端和客戶端兩部分,通過詳細(xì)步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • CentOS防火墻用法淺析

    CentOS防火墻用法淺析

    這篇文章主要介紹了CentOS防火墻用法,簡(jiǎn)單分析了CentOS防火墻操作的關(guān)閉、開啟、查看、保存等相關(guān)命令用法,需要的朋友可以參考下
    2016-10-10
  • IBM X346 板載 Raid1 功能啟用及Win2003系統(tǒng)安裝小記

    IBM X346 板載 Raid1 功能啟用及Win2003系統(tǒng)安裝小記

    有兩臺(tái)IBM X346 m/t-8840-cdr 服務(wù)器,板載raid控制器版本號(hào)為v.4.30.9,硬盤位0,1各裝一塊146G IBM 原裝SCSI硬盤。
    2011-04-04
  • 寶塔面板phpMyadmin數(shù)據(jù)庫管理出現(xiàn)500錯(cuò)誤的解決方法

    寶塔面板phpMyadmin數(shù)據(jù)庫管理出現(xiàn)500錯(cuò)誤的解決方法

    寶塔面板phpMyadmin數(shù)據(jù)庫管理出現(xiàn)500錯(cuò)誤的解決方法,經(jīng)常會(huì)出現(xiàn)數(shù)據(jù)庫管理phpMyadmin打不開,或則出現(xiàn)500內(nèi)部服務(wù)器錯(cuò)誤,本文介紹如果出現(xiàn)這個(gè)問題該如何解決
    2023-08-08
  • LSI SAS1068 RAID 陣列卡圖文配置教程

    LSI SAS1068 RAID 陣列卡圖文配置教程

    這篇文章主要介紹了LSI SAS1068 RAID 陣列卡圖文配置教程,需要的朋友可以參考下
    2016-06-06
  • rsync?常見錯(cuò)誤與解決方法整理

    rsync?常見錯(cuò)誤與解決方法整理

    由于我們經(jīng)常使用rsync進(jìn)行服務(wù)器文件的同步工作,但在配置過程中,會(huì)出現(xiàn)很多問題,下面的錯(cuò)誤基本上都是通過客戶端返回的錯(cuò)誤進(jìn)行分析
    2012-11-11

最新評(píng)論

南宁市| 清新县| 咸阳市| 陕西省| 赣州市| 海林市| 赤水市| 交口县| 卫辉市| 英山县| 那坡县| 九龙县| 阳高县| 分宜县| 漳州市| 县级市| 宁陕县| 高碑店市| 宁国市| 扎鲁特旗| 余姚市| 铜陵市| 锡林浩特市| 大荔县| 镇平县| 焉耆| 天柱县| 云浮市| 逊克县| 定边县| 新乡市| 清徐县| 昌宁县| 天津市| 和政县| 衡南县| 南皮县| 宜昌市| 左贡县| 密山市| 霍邱县|