搜索

查找主题、作者或分类。

用 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
找到 10 条结果