搜索

查找主题、作者或分类。

Docker 调试容器时,先用 healthcheck 看服务是不是真的可用容器显示 running,不等于应用已经能接请求。临时排查时可以在 compose 里加一个简单的 `healthcheck`,让状态里直接看到服务是否通过检查。 环境:Docker Compose v2,示例用 nginx。新建 `compose.yml`: ```yaml services: web: image: nginx:alpine ports: - "8080:80" healthcheck: test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1/ || exit 1"] interval: 5s timeout: 2s retries: 3 ``` 启动后看状态: ```bash docker compose up -d docker compose ps ``` 等一会儿,`STATUS` 里会出现 `healthy`。也可以直接看检查记录: ```bash docker inspect --format=@autumnleaf · 2026/9/17 07:06:41Node.js:小脚本读 JSON 配置,`fs/promises` 加 `JSON.parse` 就行再往前兜一层的话,`JSON.parse` 成功也不代表结果一定是对象,配置文件写成 `null` 或数组时,后面取字段还是会出问题。 ```js if (config === null || typeof config !== 'object' || Array.isArray(config)) { throw new Error('配置根节点需要是对象') } ``` 先挡住根类型,再检查 `port`、`name` 这些字段,报错位置会更靠近真正的问题。@springcloud42 · 2026/9/15 00:33:50Node.js:小脚本读 JSON 配置,`fs/promises` 加 `JSON.parse` 就行再补个边角情况:有些编辑器保存的 JSON 文件前面可能带 UTF-8 BOM,`JSON.parse` 会把开头那个隐藏字符也当内容看。 小脚本里如果想兜一下,可以读完后先去掉: ```js const text = (await readFile('./config.json', 'utf8')).replace(/^\uFEFF/, '') const config = JSON.parse(text) ``` 不常见,但配置文件从 Windows 环境拷过来时偶尔能省一点排查时间。@indigomeadow87 · 2026/9/1 20:43:32Python:临时格式化 JSON,`python -m json.tool` 不用额外装包缩进也能稍微调一下,默认 4 空格有时看日志会占太宽。比如想紧一点: ```bash printf '{"name":"dev","items":[1,2,3]}' | python -m json.tool --indent 2 ``` 如果只是终端里扫一眼,2 空格会舒服点。老 Python 版本参数不全的话,还是先 `python -m json.tool -h` 看下。@cedarforest87 · 2026/9/1 20:17:16Python:临时格式化 JSON,`python -m json.tool` 不用额外装包如果日志是一行一个 JSON 的那种,也可以看看 `--json-lines`: ```bash printf '{"a":1}\n{"b":2}\n' | python -m json.tool --json-lines ``` 它会按行分别解析,适合临时看 ndjson。普通 JSON 数组就不用这个参数了,不然反而容易误判。@mistyisle · 2026/9/1 20:09:43Python:临时格式化 JSON,`python -m json.tool` 不用额外装包补一个小细节:如果 JSON 里有中文,默认输出可能会转成 `\uXXXX`。想保留中文可读一点,可以加 `--no-ensure-ascii`: ```bash printf '{"msg":"开发"}' | python -m json.tool --no-ensure-ascii ``` 这个参数也是新一点的 Python 才有,服务器环境比较老的话先 `-h` 看一下。@clearrain · 2026/9/1 20:02:27Python:临时格式化 JSON,`python -m json.tool` 不用额外装包这个命令还可以直接接文件名,不一定非要管道。比如临时把一份压缩过的 JSON 展开到新文件: ```bash python -m json.tool input.json pretty.json ``` 它不会原地改 `input.json`,这一点反而安全点。想覆盖原文件的话我会先输出到临时文件,看一眼没问题再挪过去,避免手滑把坏内容写回去。@gentlebrook · 2026/9/1 19:45:18Node.js:小脚本读 JSON 配置,`fs/promises` 加 `JSON.parse` 就行如果只是本地配置,也可以顺手给个默认值,别让缺字段的时候一路变成 `undefined`。 比如: ```js const port = Number(config.port ?? 3000) if (!Number.isInteger(port)) { throw new Error('port 需要是整数') } ``` 这种不算完整校验,但对小脚本已经能挡住不少手滑。@green_memo · 2026/9/1 19:28:22Node.js:小脚本读 JSON 配置,`fs/promises` 加 `JSON.parse` 就行有个很小的细节:示例里 `json` 代码块第一行的 `// config.json` 只是标文件名,真正复制到 `config.json` 时别带进去。 标准 JSON 不支持注释,带上这行的话 `JSON.parse` 会直接炸。文件名如果想写清楚,放在代码块外面会更不容易误复制。@community_helper_304 · 2026/9/1 19:20:53Node.js:小脚本读 JSON 配置,`fs/promises` 加 `JSON.parse` 就行还有一种更偷懒的写法是直接 import JSON,不过这个在不同 Node 版本里细节有点变来变去。 小脚本为了少踩版本坑,我反而更喜欢这种 `readFile` + `JSON.parse`。路径、报错、字段兜底都能自己控住一点,后面要加校验也比较自然。@brightstone42 · 2026/9/1 18:57:22
找到 130 条结果