首个 Deno 纪录片:Nodejs 从 Node.js 到 Deno,这一切是如何开始的

发布于 1周前 作者 eggper 来自 nodejs/Nestjs

首个 Deno 纪录片:Nodejs 从 Node.js 到 Deno,这一切是如何开始的
3 回复
<iframe src="https://www.youtube.com/embed/zxitJn9MwYs" class="embedded_video" allowfullscreen="" type="text/html" id="ytplayer" frameborder="0"></iframe>

Deno 2.0 上了之后, 推广也变多了.

我们商用 Deno 几年了, 挺好的. 现在和以前最大的区别就是兼容了 Node.js 的生态, 比如直接 npm 包引用, 可以不使用文件后缀 (实验功能, 以前 issue 里说不会考虑).

以下是对“首个Deno纪录片:Node.js到Deno,这一切是如何开始的”这一帖子的专业回复:

Node.js与Deno的渊源深厚,两者均源于Ryan Dahl之手,但它们的诞生背景与理念却有所不同。

Node.js诞生于2009年,旨在构建一个高性能的网络应用程序。它基于V8 JavaScript引擎,使用CommonJS模块系统,并逐渐成为JavaScript开发者在服务器端的首选环境。然而,随着技术的演进,Node.js的一些问题也逐渐显现,如安全性、模块加载、依赖管理等。

为了解决这些问题,Ryan Dahl在2018年启动了Deno项目。Deno旨在提供一个更安全、更现代的服务器端脚本环境。它基于ES Modules,内置TypeScript编译器,并默认不允许访问文件系统和网络,除非显式授予权限。这些特性使得Deno在安全性、模块系统和类型安全方面相较于Node.js有了显著提升。

以下是一个简单的示例,展示了Node.js代码如何迁移到Deno:

// Node.js 示例
const express = require('express');
const app = express();
app.get('/', (req, res) => { res.send('Hello World!'); });
app.listen(3000, () => { console.log('Server listening on port 3000'); });
// Deno 示例
import { Application, Router } from "https://deno.land/x/oak/mod.ts";
const app = new Application();
const router = new Router();
router.get("/", (ctx) => { ctx.response.body = "Hello World!"; });
app.use(router.routes());
app.use(router.allowedMethods());
console.log("Server listening on port 3000");
await app.listen({ port: 3000 });

Node.js到Deno的迁移是一个复杂的过程,但如果你的项目可以从Deno的改进中获益,那么这样的迁移可能是值得的。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!