deno.com
本页内容

deno serve

命令行用法

deno serve [OPTIONS] [SCRIPT_ARG]...

运行主模块中定义的服务器

serve 命令使用主模块的默认导出,以确定要启动哪些服务器。

启动 `server.ts` 中定义的服务器

deno serve server.ts

启动 `server.ts` 中定义的服务器,监听更改并在端口 5050 上运行

deno serve --watch --port 5050 server.ts

类型检查选项 Jump to heading

--check Jump to heading

启用类型检查。此子命令默认不进行类型检查。如果提供了值 "all",将包含远程模块。或者,可以使用 `deno check` 子命令。

--no-check Jump to heading

跳过类型检查。如果提供了值 "remote",将忽略来自远程模块的诊断错误。

依赖管理选项 Jump to heading

--cached-only Jump to heading

要求远程依赖项已缓存。

--frozen Jump to heading

如果锁定文件过期,则报错。

--import-map Jump to heading

从本地文件或远程 URL 加载导入映射文件。

--lock Jump to heading

检查指定的锁定文件。(如果未提供值,则默认为 "./deno.lock")。

--no-lock Jump to heading

禁用锁定文件的自动发现。

--no-npm Jump to heading

不解析 npm 模块。

--no-remote Jump to heading

不解析远程模块。

--node-modules-dir Jump to heading

设置 npm 包的 node 模块管理模式。

--reload Jump to heading

短标记:-r

重新加载源代码缓存(重新编译 TypeScript)。不带值:重新加载所有内容。`jsr:@std/http/file-server`、`jsr:@std/assert/assert-equals`:重新加载指定模块。`npm:`:重新加载所有 npm 模块。`npm:chalk`:重新加载指定的 npm 模块。

--vendor Jump to heading

切换远程模块的本地 `vendor` 文件夹使用和 npm 包的 `node_modules` 文件夹使用。

选项 Jump to heading

--allow-scripts Jump to heading

允许为给定包运行 npm 生命周期脚本。注意:脚本仅在使用 `node_modules` 目录(`--node-modules-dir`)时执行。

--cert Jump to heading

从 PEM 编码文件中加载证书颁发机构。

--conditions Jump to heading

使用此参数为 npm 包导出指定自定义条件。您也可以使用 `DENO_CONDITIONS` 环境变量。

--config Jump to heading

短标记:-c

配置 Deno 的不同方面,包括 TypeScript、代码检查(linting)和代码格式化。通常,配置文件名为 `deno.json` 或 `deno.jsonc`,并且会自动检测;在这种情况下,此标志不是必需的。

--env-file Jump to heading

从本地文件加载环境变量。仅使用具有给定键的第一个环境变量。现有的进程环境变量不会被覆盖,因此如果环境中已存在同名变量,它们的值将保留。如果您的 `.env` 文件中存在同一环境变量的多个声明,则应用第一个遇到的声明。这取决于您作为参数传入的文件的顺序。

--ext Jump to heading

设置所提供文件的内容类型。

--host Jump to heading

服务器监听的 TCP 地址,默认为 `0.0.0.0`(所有接口)。

--location Jump to heading

某些 Web API 使用的 `globalThis.location` 值。

--no-code-cache Jump to heading

禁用 V8 代码缓存功能。

--no-config Jump to heading

禁用自动加载配置文件。

--open Jump to heading

在服务器运行的地址上打开浏览器。

--parallel Jump to heading

并行运行多个服务器工作进程。并行度默认为可用 CPU 数量或 `DENO_JOBS` 环境变量的值。

--port Jump to heading

服务器监听的 TCP 端口。传入 0 选择一个随机的空闲端口 [默认值: 8000]

--preload Jump to heading

在主模块之前执行的文件列表。

--seed Jump to heading

设置随机数生成器种子。

--v8-flags Jump to heading

要查看所有可用标志的列表,请使用` --v8-flags=--help`。标志也可以通过 `DENO_V8_FLAGS` 环境变量设置。使用此标志设置的任何标志都将附加在 `DENO_V8_FLAGS` 环境变量之后。

调试选项 Jump to heading

--inspect Jump to heading

在 `host:port` 上激活检查器 [默认: `127.0.0.1:9229`]

--inspect-brk Jump to heading

在 `host:port` 上激活检查器,等待调试器连接并在用户脚本开始时中断。

--inspect-wait Jump to heading

在 `host:port` 上激活检查器,并在运行用户代码之前等待调试器连接。

文件监听选项 Jump to heading

--hmr Jump to heading

监视文件更改并自动重启进程。默认情况下,会监视入口点模块图中的本地文件。可以通过将额外路径作为参数传递给此标志来监视它们。

--no-clear-screen Jump to heading

在监视模式下不清除终端屏幕。

--watch Jump to heading

监视文件更改并自动重启进程。默认情况下,会监视入口点模块图中的本地文件。可以通过将额外路径作为参数传递给此标志来监视它们。

--watch-exclude Jump to heading

从监视模式中排除提供的文件/模式。

示例 Jump to heading

以下是一个如何使用声明式 `fetch` 创建简单 HTTP 服务器的示例

server.ts
export default {
  async fetch(_req) {
    return new Response("Hello world!");
  },
} satisfies Deno.ServeDefaultExport;

satisfies Deno.ServeDefaultExport 类型断言确保您导出的对象符合 Deno HTTP 服务器的预期接口。这提供了类型安全和更好的编辑器自动补全功能,同时允许您保留实现的推断类型。

然后,您可以使用 `deno serve` 命令运行服务器

deno serve server.ts

`fetch` 函数内部的逻辑可以根据需要进行定制,以处理不同类型的请求并相应地提供内容。

server.ts
export default {
  async fetch(request) {
    if (request.url.endsWith("/json")) {
      return Response.json({ hello: "world" });
    }

    return new Response("Hello world!");
  },
} satisfies Deno.ServeDefaultExport;

您找到所需内容了吗?

隐私政策