我正在关注简单的API服务器| Deno 文档:
server.ts
:const kv = await Deno.openKv();
Deno.serve(async (request: Request) => {
// Create short links
if (request.method == "POST") {
const body = await request.text();
const { slug, url } = JSON.parse(body);
const result = await kv.set(["links", slug], url);
return new Response(JSON.stringify(result));
}
// Redirect short links
const slug = request.url.split("/").pop() || "";
const url = (await kv.get(["links", slug])).value as string;
if (url) {
return Response.redirect(url, 301);
} else {
const m = !slug ? "Please provide a slug." : `Slug "${slug}" not found`;
return new Response(m, { status: 404 });
}
});
运行
deno run -A --unstable server.ts
。该网站显示“请提供一个 slug”
运行:
curl --header "Content-Type: application/json" --request POST --data '{"url":"https://docs.deno.com/runtime/manual","slug":"denodocs"}' http://localhost:8000/
我收到此错误:
curl: (7) Failed to connect to localhost port 8000 after 0 ms: Connection refused
搜索错误,我想我需要将
localhost
替换为127.0.0.1
:
curl --header "Content-Type: application/json" --request POST --data '{"url":"https://docs.deno.com/runtime/manual","slug":"denodocs"}' http://127.0.0.1:8000/
这也没有帮助。
以我的理解,它应该回归
{ "ok": true, "versionstamp": "00000000000000060000" }
你知道出了什么问题吗?
我在普通 shell 上启动服务器时不小心使用了 WSL shell。使用普通的返回数据很好。