运行要求
示例使用 Node.js 20+ 的原生 fetch,不需要额外 HTTP client。
- Node.js 20+
- MOFANG_API_KEY
完整示例
finally 会清理 timeout。AbortError 表示客户端超时或主动取消,不应无界重试。
Node.jsjavascript
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 60_000);
try {
const response = await fetch("https://cloudnode.skin/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MOFANG_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "node-example-001",
},
body: JSON.stringify({
model: "YOUR_MODEL_ALIAS",
messages: [{ role: "user", content: "Hello" }],
max_completion_tokens: 256,
}),
signal: controller.signal,
});
const body = await response.json();
if (!response.ok) throw new Error(`${body.error?.code}: ${body.error?.message}`);
console.log(body.choices[0].message.content);
console.log("request id:", response.headers.get("x-request-id"));
} finally {
clearTimeout(timeout);
}