typescript - Error [ERR_MODULE_NOT_FOUND]: Cannot find module (TypeScript/TypeOrm)
问题描述
I don't understand why it's not working.I'm just trying to print the content of my database using an entity with TypeScript/ TypeOrm.
Main file :
import { createConnection, getManager ,getConnectionOptions } from 'typeorm';
//import {ReleaseController} from "./controller/ReleaseController.js";
//import { attachControllers } from '@decorators/express';
import express from "express";
import { createExpressServer } from 'routing-controllers';
import "reflect-metadata";
import { Release } from "./entity/Release";
const connectionOptions = await getConnectionOptions();
console.log(connectionOptions)
await createConnection(connectionOptions).then(async connection => {
const entityManager = getManager();
let releases = await entityManager.find(Release);
console.log("All releases from the db: ", releases);
}).catch(error => console.log(error));
const app = createExpressServer({
//controllers: [ReleaseController], // we specify controllers we want to use
});
app.listen(3000);
Entity Release :
import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
@Entity()
export class Release {
@PrimaryGeneratedColumn()
release_id: number;
@Column({ type: 'date' })
date: string;
@Column()
name: string;
}
TS config :
{
"compilerOptions": {
"module": "esnext",
"moduleResolution": "node",
"target": "esnext",
"esModuleInterop": true,
"noImplicitAny": true,
"sourceMap": false,
"allowJs": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"baseUrl": ".",
"paths": {
"*": ["node_modules/*"]
}
},
"include": [ "src/**/*"],
"logging": true,
"logger": "file",
}
Output Error :
node --trace-warnings .
node:internal/process/esm_loader:74
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/jp/eclipse-workspace/SingleCellSignal/src/entity/Release' imported from /home/jp/eclipse-workspace/SingleCellSignal/src/singlecellsignal.js
at new NodeError (node:internal/errors:363:5)
at finalizeResolution (node:internal/modules/esm/resolve:307:11)
at moduleResolve (node:internal/modules/esm/resolve:742:10)
at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:853:11)
at Loader.resolve (node:internal/modules/esm/loader:89:40)
at Loader.getModuleJob (node:internal/modules/esm/loader:242:28)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:73:40)
at link (node:internal/modules/esm/module_job:72:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
解决方案
我真的不明白。
节点 --trace-warnings --unhandled-rejections=warn --experimental-json-modules --experimental-modules --es-module-specifier-resolution=node ./dist/singlecellsignal.js
(node:38717) UnhandledPromiseRejectionWarning: Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /home/jp/eclipse-workspace/SingleCellSignal/dist/entity/Release.js
require() of ES modules is not supported.
require() of /home/jp/eclipse-workspace/SingleCellSignal/dist/entity/Release.js from /home/jp/eclipse-workspace/SingleCellSignal/node_modules/typeorm/util/DirectoryExportedClassesLoader.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename Release.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /home/jp/eclipse-workspace/SingleCellSignal/package.json.
at new NodeError (node:internal/errors:363:5)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1126:13)
at Module.load (node:internal/modules/cjs/loader:989:32)
at Function.Module._load (node:internal/modules/cjs/loader:829:14)
at Module.require (node:internal/modules/cjs/loader:1013:19)
at require (node:internal/modules/cjs/helpers:93:18)
at /home/jp/eclipse-workspace/SingleCellSignal/node_modules/typeorm/util/DirectoryExportedClassesLoader.js:42:39
at Array.map (<anonymous>)
at Object.importClassesFromDirectories (/home/jp/eclipse-workspace/SingleCellSignal/node_modules/typeorm/util/DirectoryExportedClassesLoader.js:42:10)
at ConnectionMetadataBuilder.buildEntityMetadatas (/home/jp/eclipse-workspace/SingleCellSignal/node_modules/typeorm/connection/ConnectionMetadataBuilder.js:51:160)
at emitUnhandledRejectionWarning (node:internal/process/promises:190:15)
at processPromiseRejections (node:internal/process/promises:238:9)
at processTicksAndRejections (node:internal/process/task_queues:97:32)
(node:38717) Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /home/jp/eclipse-workspace/SingleCellSignal/dist/entity/Release.js
require() of ES modules is not supported.
require() of /home/jp/eclipse-workspace/SingleCellSignal/dist/entity/Release.js from /home/jp/eclipse-workspace/SingleCellSignal/node_modules/typeorm/util/DirectoryExportedClassesLoader.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename Release.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /home/jp/eclipse-workspace/SingleCellSignal/package.json.
at new NodeError (node:internal/errors:363:5)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1126:13)
at Module.load (node:internal/modules/cjs/loader:989:32)
at Function.Module._load (node:internal/modules/cjs/loader:829:14)
at Module.require (node:internal/modules/cjs/loader:1013:19)
at require (node:internal/modules/cjs/helpers:93:18)
at /home/jp/eclipse-workspace/SingleCellSignal/node_modules/typeorm/util/DirectoryExportedClassesLoader.js:42:39
at Array.map (<anonymous>)
at Object.importClassesFromDirectories (/home/jp/eclipse-workspace/SingleCellSignal/node_modules/typeorm/util/DirectoryExportedClassesLoader.js:42:10)
at ConnectionMetadataBuilder.buildEntityMetadatas (/home/jp/eclipse-workspace/SingleCellS
信号/node_modules/typeorm/connection/ConnectionMetadataBuilder.js:51:160)
推荐阅读
- android - Android 30 docker hub 映像的 Sysdig 扫描问题
- python - 删除有条件的行(多索引情况)
- asp.net-web-api - Blazor Webassemby:对象引用未设置为对象 i 的实例
- zapier - 使用 Zapier 在 ActivCampaign 标签中传输 UTM 参数
- javascript - 可以在应用程序在后台时以编程方式解锁 Android 设备,但不能在应用程序在 React Native 中被杀死时解锁
- flutter - 有没有办法用原始位输入编辑 PDF 文件
- python - Keras 损失:nan 在更长的 lstm 回顾中
- android - 安卓。ConstraintLayout:约束端不起作用
- phpexcel - PHPExcel图表X轴刻度线之间
- r - 在 R 中合并 2 个 data.tables,其中 1 个数据表有一个额外的行