javascript - 在 Express 中使用 ES6 模块

标签 javascript node.js express ecmascript-6 module

有没有办法

  • 使用 Express 中的 ES6 模块编写我的代码应用程序;
  • 不恢复到 babel@std/esm ?

  • 一旦我致力于app.jsExpress ,我找不到摆脱它的方法。
    这似乎应该已经在网络上,但我能找到的只是上面的选项(转译,esm)。

    最佳答案

    使用 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
    
    这行得通 - 我只是用 Node v14.4.0 运行它:。其他方法在我之前给你的链接中讨论过 here .根据该文档,有三种方法可以指定您将 ESM 模块加载为顶级模块文件:
  • .mjs 结尾的文件.
  • .js 结尾的文件当最近的 parent package.json文件包含一个值为“module”的顶级字段“type”。
  • 作为参数传入 --eval 的字符串,或通过 STDIN 管道传输到 Node ,带有标志 --input-type=module .
  • 关于javascript - 在 Express 中使用 ES6 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62743570/

    相关文章:

    javascript - Phonegap 下载 html 文件并替换它(来源)

    javascript - ES6 解构赋值在最新的 Node 中不起作用

    javascript - 如何实际使用使用discord oauth2请求的数据

    javascript - Node.js/Socket.io 实时网页推送更新

    javascript - 用于表单验证的 JQuery 插件

    javascript - 使用 phantomjs 的 Premailer/inline css

    javascript - node.js:readLine 但最后一行未保存在数组中

    ios - Meteor GoogleMaps.load() 无法在 iOS 上使用 Iron

    node.js - 如何在 Node.js 项目中完美使用 Oracle DB

    javascript - 序列化 ORM - 错误 : not returning database values