Ayo*_*b k 25 node.js es6-modules
我正在使用 Node.js v14.13.0。
app.js文件:
import database from './database';
database();
Run Code Online (Sandbox Code Playgroud)
数据库/index.js文件:
import mongoose from 'mongoose';
export default connect = async () => {
try {
await mongoose.connect('...', { });
} catch (error) {}
};
Run Code Online (Sandbox Code Playgroud)
在package.json我添加了"type": "module".
运行应用程序后,我收到以下错误:
错误 [ERR_UNSUPPORTED_DIR_IMPORT]:目录导入 '/Users/xx/Desktop/Projects/node-starter/src/database' 不支持解析从 /Users/xx/Desktop/Projects/node-starter/src/app 导入的 ES 模块。 js
php*_*_qq 16
使用 ES6 模块,您不能(还?)导入目录。您的导入应如下所示:
import database from "./database/index.js"
Run Code Online (Sandbox Code Playgroud)
这里发生的事情是 Node要求在import语句中使用扩展名,并且还声明,
'./startup/index.js'还必须完全指定目录索引(例如)。
您的import database from './database';声明没有指定index.js. 您可以index.js按照另一个答案中的建议进行添加,但是当您最终从一个文件导入文件时,这种方法在 TypeScript 项目中看起来并不优雅。.js.ts
您可以通过传递--experimental-specifier-resolution=node 标志来更改此节点扩展解析行为。这将起作用,并将保持您的代码不变:
应用程序.js
import database from './database';
database();
Run Code Online (Sandbox Code Playgroud)
运行方式:node --experimental-specifier-resolution=node app.js。
一位 Node 开发人员承认文档不是那么清楚。
| 归档时间: |
|
| 查看次数: |
12246 次 |
| 最近记录: |