1. 程式人生 > >關於本地測試需要啟動多個api的痛點解決

關於本地測試需要啟動多個api的痛點解決

痛點來源

本人蔘與的專案採用按業務分離的模式架構開發,每次測試時都需要在Visual Studio Code 中開多個powershell視窗啟動多個服務,所以感覺比較痛苦,因為在windows上開發, 然後就想到了bat。

實現細節

bat 啟動檔案

#cmd-api-start.bat

@echo off

set node=%NODE_HOME%\\node.exe

:從services.txt讀取沒有'#'註釋的服務列表並啟動
for /f "eol=/delims=" %%b in ('findstr /i /v "^#" services.txt') do (
	start "%%b Service" %node% %%b
)

services.txt如下

#services.txt


C:/Users/gs82167/git/gui_simweb/simpliciti.js
C:/Users/gs82167/git/simweb-common-router/app/api.js
C:/Users/gs82167/git/container_simweb/api/app/simweb.js
C://Users/gs82167/git/api_counterparty/v1/app/api.js
C:/Users/gs82167/git/api_agreement/v2/app/api.js
#C:/Users/gs82167/git/api_discounting/v2/app/api.js
#C:/Users/gs82167/git/api_makerchecker/v1/app/api.js

體驗升級

因cmd 視窗太小,日誌不方便檢視,於是採用git-bash.exe 除錯。

#bash-api-start.bat

@echo off

set gitbash=%BASH_HOME%\git-bash.exe
set mintty=%BASH_HOME%\usr\bin\mintty.exe

for /f "eol=/delims=" %%b in ('findstr /i /v "^#" services.txt') do (
    start /min "" "%mintty%" --icon "%gitbash%",0 --exec "/usr/bin/bash" --login -i -c "node %%b"
)

既然有啟動程式,當然也有關閉程式

#kill-node.bat

taskkill /F /IM node.exe

總結

微服務火熱的當下,本地測試時需要啟動的服務更多,例如spring  cloud 相關專案的一鍵啟動也可以參照以上指令碼。