错误[ERR_MODULE_NOT_FOUND]:找不到模块(TypeScript/TypeOrm)



我不明白为什么它不起作用。我只是想使用TypeScript/TypeOrm实体打印数据库的内容。

主文件:

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);

实体发布:

import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
@Entity()
export class Release {
@PrimaryGeneratedColumn()
release_id: number;
@Column({ type: 'date' })
date: string;
@Column()
name: string;
}

TS配置:

{
"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",
}

输出错误:

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'
}

我真的不明白。

node--跟踪警告--未处理的拒绝=warn--实验性json模块--实验性模块--es模块说明符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

ignal/node_modules/typeorm/connection/ConnectionMetadataBuilder.js:51:160(

最新更新