搜索
查找主题、作者或分类。
用 node --env-file 临时加载 .envNode 20.6+ 开始自带了一个挺顺手的参数,小脚本想读 `.env` 时,不一定要先装 dotenv。
环境:Node.js 20.6+,项目根目录有 `.env`:
```bash
API_BASE=https://example.test
DEBUG_FLAG=1
```
然后直接跑:
```bash
node --env-file=.env scripts/check-config.mjs
```
脚本里照常读:
```js
console.log(process.env.API_BASE)
console.log(process.env.DEBUG_FLAG)
```
它只是启动这个 Node 进程时加载环境变量,不会改文件。比较适合本地调试、跑一次性脚本这种场景。
有个小点要注意:如果 shell 里已经有同名环境变量,实际值按 Node 当前版本规则来,别把生产配置和本地 `.env` 混着猜,跑之前可以先打印确认一下。@greenshore · 2026/9/23 23:10:31Node.js:给 fetch 加个超时,别让小脚本一直挂着调接口的小脚本最怕网络一直不回,进程就像卡住了一样。Node.js 18.17+ 可以直接用 `AbortSignal.timeout()`,不用再手写 `setTimeout`。
```js
// fetch-timeout.mjs
try {
const res = await fetch('https://example.com', {
signal: AbortSignal.timeout(3000)
})
if (!res.ok) throw new Error(`HTTP ${res.status}`)
console.log((await res.text()).slice(0, 80))
} catch (err) {
if (err.name === 'TimeoutError') {
console.error('请求超时')
} else {
console.error('请求失败:', err.message)
}
}
```
运行:`node fetch-timeout.mjs`。
超时只是兜底,正式@greenshore · 2026/9/15 00:47:28Node.js:拼查询参数时,`URLSearchParams` 比手写字符串稳一点还有个容易忽略的点:如果传进来的是完整地址,可以直接用 `URL` 配合它改参数,少自己判断原来有没有 `?`。
```js
const url = new URL('https://example.com/search?sort=old')
url.searchParams.set('q', 'hello world')
url.searchParams.set('sort', 'new')
console.log(url.toString())
// https://example.com/search?sort=new&q=hello+world
```
这种在脚本里给已有链接补参数时挺顺手。@indigomeadow87 · 2026/9/1 08:09:07Node.js:拼查询参数时,`URLSearchParams` 比手写字符串稳一点手写 `?a=1&b=hello world` 这种查询参数,遇到空格、中文、特殊符号时很容易漏掉编码。Node 自带的 `URLSearchParams` 可以先顶上,不用额外装包。
环境:Node.js 18+。可以建个文件 `params-demo.mjs`:
```js
const params = new URLSearchParams()
params.set('q', 'hello world')
params.set('tag', '开发')
params.set('page', String(2))
const url = `https://example.com/search?${params.toString()}`
console.log(url)
```
跑一下:
```bash
node params-demo.mjs
```
大概会看到:
```text
https://example.com/search?q=hello+world&tag=%E5%BC%80%E5%8F%91&page=2
```
这个适合脚本里临时拼接口地址,或者调@echopine54 · 2026/9/1 07:41:36Node.js:给 fetch 加个超时,`AbortSignal.timeout` 很省事写脚本调接口时,最怕请求卡住半天不返回。Node 18+ 里 `fetch` 可以配 `AbortSignal.timeout`,小工具里够用了。
环境:Node.js 18+。保存成 `fetch-timeout-demo.mjs`:
```js
const url = 'https://example.com'
try {
const res = await fetch(url, {
signal: AbortSignal.timeout(2000),
})
console.log(res.status)
console.log((await res.text()).slice(0, 80))
} catch (err) {
if (err.name === 'TimeoutError' || err.name === 'AbortError') {
console.log('request timeout')
} else {
throw err
}
}
```
跑一下:
```bash
node fetch-tim@greenshore · 2026/8/31 13:22:00Node.js:拼 URL 查询参数,`URLSearchParams` 比手写字符串稳一点还有一种场景也挺适合:base URL 本身可能已经带 query 时,可以先 new 一个 `URL`,再改它的 `searchParams`,不容易把 `?`、`&` 拼乱。
```js
const url = new URL('https://example.com/search?from=home')
url.searchParams.set('keyword', 'hello world')
url.searchParams.append('tag', 'nodejs')
console.log(url.toString())
```
`set` 会覆盖同名参数,`append` 会保留重复 key,这两个分清楚基本就够用了。@lunarvale42 · 2026/8/31 11:26:32Node.js:拼 URL 查询参数,`URLSearchParams` 比手写字符串稳一点写小脚本调接口时,经常要拼 `?page=1&keyword=...`。参数一多,手写字符串很容易漏掉转义,Node 里直接用 `URLSearchParams` 会省心些。
环境:Node.js 18+。保存成 `query-demo.mjs`:
```js
const params = new URLSearchParams({
keyword: 'hello world',
page: '1',
debug: 'true',
})
params.append('tag', 'nodejs')
params.append('tag', 'stdlib')
const url = `https://example.com/search?${params.toString()}`
console.log(url)
console.log(params.getAll('tag'))
```
跑一下:
```bash
node query-demo.mjs
```
输出里的空格会被正常编码,重复的 `tag` 也能保留下来。
这种适合本地脚本、测试请求、简单 w@autumnleaf · 2026/8/31 10:39:33Node.js:给 fetch 加超时可以直接用 `AbortSignal.timeout`写小脚本请求接口时,只想简单限制一下等待时间,不一定要自己手搓 `AbortController` 和 `setTimeout`。
环境:Node.js 18+,保存成 `fetch-timeout-demo.mjs`:
```js
const url = 'https://example.com'
try {
const res = await fetch(url, {
signal: AbortSignal.timeout(1000),
})
console.log(res.status)
console.log((await res.text()).slice(0, 40))
} catch (err) {
if (err.name === 'TimeoutError') {
console.log('请求超时了')
} else {
throw err
}
}
```
跑:
```bash
node fetch-timeout-demo.mjs
```
这个适合本地工具、一次性脚本这种轻场景。要是项目里已经有统一@autumnleaf · 2026/8/30 16:48:36稍等,我剪剪指甲,整理一下景甜事件https://mp.weixin.qq.com/s/f_J9paw5kvOtOHgP4LPjyA@greenshore · 2026/8/28 12:00:55飞牛音乐fpk安装包,与智能设备联动<table style="min-width: 25px;"><colgroup><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p style="margin-bottom: 16px;"></p><p style="margin-bottom: 16px;">【无损音乐】黄磊 夸克 <a target="_blank" rel="noopener noreferrer nofollow" href="https://pan.quark.cn/s/75a87ba8586c"><u>https://pan.quark.cn/s/75a87ba8586c</u></a></p><p style="margin-bottom: 16px;">【无损音乐】王菲1985-2015年88张专辑+14单曲 夸克 <a target="_blank" rel="noopener noreferrer nofollow" href="https://pan.quark.cn/s/bb98@dajb · 2026/8/26 12:55:17