在 Express 中使用 ES6 模块

问题描述 投票:0回答:1

有没有办法

  1. Express
    应用程序中使用 ES6 模块编写我的代码;
  2. 不恢复为
    babel
    @std/esm

一旦我致力于

app.js
Express
,我就找不到摆脱它的方法。

这似乎应该已经在网络上,但我能找到的只是上面的选项(转译,esm)。

javascript node.js express ecmascript-6 module
1个回答
27
投票

使用node.js,你必须告诉它你正在加载的主文件是一个ESM模块。有几种方法可以做到这一点。最简单的方法是为主文件添加

.mjs
文件扩展名。

// app.mjs

import express from 'express';

const app = express();

app.get("/", (req, res) => {
    res.send("hello");
});

app.listen(80);

然后,启动你的程序:

node app.mjs

这有效 - 我刚刚使用节点 v14.4.0 运行它:。其他方法可以在我之前给您的链接here中讨论。根据该文档,可以通过三种方法指定您将 ESM 模块加载为顶级模块文件:

  1. .mjs
    结尾的文件。

  2. 当最近的父

    .js
    文件包含值为“module”的顶级字段“type”时,以
    package.json
    结尾的文件。

  3. 字符串作为参数传入

    --eval
    ,或通过 STDIN 通过管道传输到节点,带有标志
    --input-type=module

© www.soinside.com 2019 - 2024. All rights reserved.