我正在尝试在服务器端使用ES6。我已经从服务器文件中分离了端点:
archive.js:
import { Router } from "express";
const router = Router();
router.get("/", async (req, res) => { "some code"});
export default router;
当我想将它导入到我的服务器文件时,如下所示:
import archive from "./endpoints/archive.js";
app.use("/archive", archive);
它给了我一个错误:
(节点:9565(实验警告:ESM模块加载程序处于实验状态。internal/modules/run_main.js:54internalBinding('errors'(.trigerUnaughtException((
知道吗,伙计们?我不想回去要求/module.exports
您可以使用Node v14.12.0;在哪里解决了这个问题,并阅读此文档https://nodejs.org/api/esm.html#esm_package_json_type_field
经过几次尝试,我意识到"--实验模块";";nodemon";导致在整个应用程序中实现导入的问题,所以我确实更新了该标志,将新标志用于显式文件名"--es模块说明符resolution=node";现在工作得很完美。下面是一篇关于这面新国旗的文章:https://nodejs.medium.com/announcing-a-new-experimental-modules-1be8d2d6c2ff
因此,对于解释,你可以做这样的脚本:
nodemon --es-module-specifier-resolution=node
还要记住,您使用的nodejs版本是12.8X、14.7X以下的版本或最后一个稳定版本。
在Mac OS 上将Node.js升级至最新版本
我希望这能帮助更多的开发人员:(