Skip to content

Commit 06dc848

Browse files
committed
🧁 docs: add docs/nuxt/health-check
1 parent 06acd6d commit 06dc848

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

docs/nuxt/health-ckeck.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
## NuxtサーバーとBFFを含めたヘルスチェック
2+
3+
Nuxt サーバーからさらに `BFF の API サーバーまでの疎通` を含めたヘルスチェックになります。
4+
5+
[typescript-nuxtjs-boilerplate/healthcheck.js at master · typescript-nuxtjs-boilerplate/typescript-nuxtjs-boilerplate](https://github.com/typescript-nuxtjs-boilerplate/typescript-nuxtjs-boilerplate/blob/master/src/api/healthcheck.js)
6+
7+
```javascript
8+
// https://ja.nuxtjs.org/api/configuration-servermiddleware/
9+
const axios = require('axios')
10+
11+
const HEALTHCHECK_PATH = '/healthcheck'
12+
13+
// 関数の仕様はこちら
14+
// https://github.com/senchalabs/connect#appusefn
15+
module.exports = (req, res, next) => {
16+
console.log('/start healthcheck---')
17+
18+
let internalHealthcheckUrl
19+
20+
if (process.env.BUILD_ENV === 'docker') {
21+
/** docker のビルド環境の環境変数から値を取ってくる */
22+
internalHealthcheckUrl = `${process.env.internalEndpointUrl}${HEALTHCHECK_PATH}`
23+
} else {
24+
/** docker でビルドされていない場合は、 .env.local から値を取ってくる */
25+
internalHealthcheckUrl = `http://localhost:5000${HEALTHCHECK_PATH}`
26+
}
27+
console.log('internalHealthcheckUrl:', internalHealthcheckUrl)
28+
29+
res.writeHead(200, {
30+
'Content-Type': 'text/plain'
31+
// 'Content-Type': 'application/json'
32+
})
33+
34+
axios.get(`${internalHealthcheckUrl}`).then(response => {
35+
console.log(response.data)
36+
console.log(response.status)
37+
38+
// res.writeHead を使う場合は、 end しか使えない
39+
// https://qiita.com/kukimo/items/e686d480209464c6372f
40+
// res.write('ok')
41+
res.end('ok')
42+
})
43+
44+
console.log('/end healthcheck---')
45+
46+
// このミドルウェアがレスポンスを返さず、次に処理を移譲させるなら next() を実行すること
47+
// https://expressjs.com/en/guide/writing-middleware.html
48+
// next()
49+
}
50+
```

0 commit comments

Comments
 (0)