Appearance
JavaScript 调用示例
先完成 本地密钥设置。
使用 Node.js fetch
这段示例运行在 Node.js,不能放进浏览器网页,否则访问网页的人可能取得 Key。使用当前 Node.js LTS;本项目的 Node.js 24 支持下面的参数。
新建 test_fetch.mjs:
javascript
// 配置由运行命令加载,不把 Key 写入源代码。
const { XKAPI_API_KEY, XKAPI_BASE_URL, XKAPI_MODEL } = process.env;
if (!XKAPI_API_KEY || !XKAPI_BASE_URL || !XKAPI_MODEL) {
throw new Error('请检查 .env 的三项配置');
}
try {
const response = await fetch(`${XKAPI_BASE_URL.replace(/\/$/, '')}/chat/completions`, {
method: 'POST',
headers: {
Authorization: `Bearer ${XKAPI_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: XKAPI_MODEL,
messages: [{ role: 'user', content: '你好' }],
}),
signal: AbortSignal.timeout(60_000), // 最多等待 60 秒。
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data.choices[0].message.content);
} catch (error) {
// 不输出请求对象,避免暴露认证头。
console.error('请求失败:', error.name, error.message);
process.exitCode = 1;
}sh
# Node.js 从当前目录加载 .env 后运行脚本。
node --env-file=.env test_fetch.mjs使用 axios
在单独的测试目录中,没有 package.json 时先初始化;已有文件就跳过初始化:
sh
# 只在没有 package.json 的测试目录运行初始化。
npm init -y
# 安装 axios。
npm install axios新建 test_axios.mjs:
javascript
import axios from 'axios';
// 从环境变量读取地址、密钥和模型。
const { XKAPI_API_KEY, XKAPI_BASE_URL, XKAPI_MODEL } = process.env;
if (!XKAPI_API_KEY || !XKAPI_BASE_URL || !XKAPI_MODEL) {
throw new Error('请检查 .env 的三项配置');
}
try {
const { data } = await axios.post(
`${XKAPI_BASE_URL.replace(/\/$/, '')}/chat/completions`,
{ model: XKAPI_MODEL, messages: [{ role: 'user', content: '你好' }] },
{ headers: { Authorization: `Bearer ${XKAPI_API_KEY}` }, timeout: 60_000 },
);
console.log(data.choices[0].message.content);
} catch (error) {
// axios 错误对象可能带认证头,不要直接 console.log(error)。
console.error('请求失败:', error.response?.status ?? error.code ?? '未知');
process.exitCode = 1;
}sh
# 加载本地配置并发送一次请求。
node --env-file=.env test_axios.mjs✅ 本节完成检查点
- [ ] 已完成本页操作,真实 Key 没有写进代码或提交到 GitHub。