使用 Cursor 从 Express.js 迁移到 Encore.ts,性能提升 9 倍
在本文中,我们将介绍Encore.ts ,一个与Express 相比性能提高 9 倍的开源后端框架,以及如何使用Cursor快速将您的应用程序从 Express 应用程序迁移到 Encore.ts。

Encore.ts 是什么?
Encore.ts 是一个开源 TypeScript 框架,用于构建高性能、类型安全的微服务应用程序,并集成使用数据库、发布/订阅、缓存等云服务。
Encore.ts 自动执行许多后端开发任务,例如设置本地数据库、处理连接字符串、管理 API 和服务发现以及与云基础设施集成。
Encore.ts 还附带许多内置工具,如自动 API 文档和服务目录、分布式跟踪等。
它在构建时就考虑到了人工智能,并且可以与 GitHub Copilot 和 Cursor 等工具完美配合,帮助您更快地编写代码。
Encore在Github上拥有超过9k+颗星,欢迎您也为其做出贡献!
什么是光标?
Cursor 是一款全新的 AI IDE,它正在迅速改变我们的编程方式。(它是有史以来发展最快的科技公司之一!)
本质上,Cursor 是 VS Code 的一个分支,但内置了 AI 工具,可以帮助你更快地编写代码。如果你知道如何使用 VS Code,那么你也就知道如何使用 Cursor。
它可以非常出色地预测您接下来想要编写的代码 - 您会发现很多时候您只需点击“tab”键即可接受它的建议。
它还具有“作曲家”模式,可以为您编写整个服务和 API,当使用 Encore.ts 时,它甚至可以自动集成所有必要的基础设施。
Cursor 特别准确的原因在于它索引了您的整个代码库,因此即使在更大的代码库中它也能很好地了解您的应用程序的上下文。
如果需要,您可以开启隐私模式,以确保您的代码保持私密。他们已获得 SOC 2 认证,这意味着他们非常重视安全。
为什么要进行切换?
在深入迁移过程之前,让我们先了解一下为什么您可能需要考虑这种转变:
✅性能:Encore.ts 比 Express.js 快 9 倍,尤其是在处理经过验证的请求时。
✅类型安全:内置 TypeScript 支持,具有跨服务的强大类型检查。
✅ AI-Ready 开发:更好地与 AI 工具集成以生成代码。
设置我们的开发环境
1.安装所需工具
首先,让我们安装 Cursor 和 Encore:
安装 Encore:
brew install encoredev/tap/encore
上述命令将在 MacOS 上安装 Encore CLI,但对于其他操作系统,您可以按照此处的说明进行操作。
安装光标:
您可以从这里安装 Cursor 。
2. 我们的初始 Express.js 应用程序
让我们从一个简单的 Express.js API 开始,并将其迁移到 Encore.ts。以下是我们的初始设置:
// src/app.js
const express = require('express');
const { z } = require('zod');
const app = express();
app.use(express.json());
const todos = [];
// Validation schema
const todoSchema = z.object({
title: z.string().min(1),
completed: z.boolean(),
});
app.get("/api/todos", (req, res) => {
res.json(todos);
});
app.post("/api/todos", (req, res) => {
const result = todoSchema.safeParse(req.body);
if (!result.success) {
return res.status(400).json({ errors: result.error.errors });
}
const newTodo = {
id: todos.length + 1,
...result.data,
};
todos.push(newTodo);
res.status(201).json(newTodo);
});
app.listen(3000, () => {
console.log("Server running on port 3000");
});
这是我的基本 Express.js API,我将把它迁移到 Encore.ts。正如你所见,它缺乏类型安全性,而且效率不高。
让我们看看如何使用 Encore.ts 和 Cursor 来改进这一点。
迁移到 Encore.ts
1. 创建 Encore.ts 项目
让我们创建一个新的 Encore.ts 项目:
encore app create
如果您想启用自动云部署,系统可能会提示您创建帐户。如果您希望稍后使用 Encore Cloud 的免费托管服务部署应用,您可以立即创建帐户。否则,我们将跳过此步骤。
然后,系统会要求您选择一个项目模板。我们选择“Hello World”模板。
这将创建一个具有基本结构的新项目。运行后,您将自动重定向到仪表板界面,您可以在其中测试 API 并运行本地开发环境。
我们还没有编写任何代码,但我们已经实现了许多开箱即用的功能。例如内置日志、API 测试环境、类型安全和本地开发环境等等。
2. 设置光标
在开始编码之前,我们先给 Cursor 一些 Encore 专用的指令来帮助我们。首先,下载ts_llm_instructions.txt文件,并将其保存到.cursorrules
应用程序文件夹中。
然后,打开 Cursor 并转到Settings
-> General
->Cursor Rules
并确保Include .cursorrules files
已选中。
太棒了!现在我们已准备就绪,可以出发了🚀。
3. 使用 Cursor AI 协助迁移
Cursor 的强大功能之一是它能够帮助代码迁移。使用方法如下:
在 Cursor 中打开您的 Express.js 文件以及我们新创建的 Encore.ts 项目。
最后,您的光标设置应如下所示:
使用聊天界面(Cmd + L),选择 Composer,然后通过提供已打开的文件的整个上下文来输入“将此 Express.js 代码转换为 Encore.ts”。
Cursor 将分析您的代码并建议适当的 Encore.ts 结构,处理:
- 路线转换
- 类型定义
- 验证逻辑
- 错误处理
一旦 Cursor 给您提出建议,请单击Accept
所有更改并保存您的文件。
请记住:使用 AI 生成并非确定性,因此结果并不总是完全相同。借助 Cursor 对 Encore.ts 的理解,它通常能够出色地将 Express 应用迁移到 Encore。
测试迁移后的应用程序
我们已经有了一个很好的开始,并且已经用 Encore.ts 编写了第一个 API,但还没有测试。那就让我们测试一下吧!
运行您的 Encore 应用程序:
encore run
这将:
- 启动您的申请
- 建立必要的基础设施
- 提供本地开发仪表板
- 自动生成API文档
现在打开本地开发仪表板:localhost:9400
在仪表板中,您可以从 API 浏览器测试端点并查看响应。您甚至可以查看请求及其所有操作的完整跟踪。
部署我们的 Encore.ts 应用程序
我们已经编写了代码,测试了它,现在我们想要部署它。
Encore 提供两种部署方式。您可以通过以下方式为您的应用生成 Docker 镜像进行部署:
encore build docker MY-IMAGE:TAG
这将使用主机编译您的应用程序,然后生成包含已编译应用程序的 Docker 镜像。您现在可以将其部署到任何您喜欢的地方。请参阅自托管文档了解更多信息。
或者,使用免费的 Encore Cloud 帐户,您可以使用 Encore Cloud 进行自动化部署。您只需执行 git push 即可:
git add -A .
git commit -m 'Initial commit'
git push encore
推送您的代码后,Encore Cloud 将:
- 构建并测试您的应用
- 提供所需的基础设施
- 将应用程序部署到暂存环境
您将收到一个 URL,用于在 Encore Cloud 仪表板中跟踪您的部署进度(类似于https://app.encore.cloud/$APP_ID/deploys/...
)。
从那里,您可以:
- 查看生产痕迹
- 连接您的云帐户(以便您可以自动部署到 AWS 和 GCP)
- 与 GitHub 集成
- 监视您的应用程序
- 还有更多!
结论
在本篇博文中,我们了解了如何使用 Cursor AI 将 Express.js 应用程序迁移到 Encore.ts。我们还了解了如何测试应用程序并将其部署到 Encore Cloud。
希望你喜欢这篇博文!你可以亲自尝试一下,然后告诉我你的想法。