Я нашел веб-сайт https://github.com/typeorm/typeorm, который в несколько шагов создает приложение для машинописного текста, способное подключаться к базе данных PostgreSQL. Я следовал за шагами и изменил пример, чтобы подключиться к моей собственной существующей базе данных и успешно извлечь содержимое одной таблицы. Однако моя цель - создать службу REST, развернутую в nodeJS, которая сможет обеспечить доступ к постоянным данным, хранящимся в базе данных PostgreSQL. Я нашел другой сайт с примером (более 2 частей) всего, что я хотел сделать, и многое другое. https://itnext.io/production-ready-node-js-rest-apis-setup-using-typescript-postgresql-and-redis-a9525871407 Часть 2 была go в интеграции PostgreSQL. Кажется, что Часть 2 никогда не была опубликована, поэтому я остался с приложением для узла, которое выглядит как хорошее начало. Поэтому я попытался самостоятельно интегрировать недостающие фрагменты, чтобы код, развернутый в службе REST узла, мог получить доступ к моей базе данных. Хотя код работает, как и ожидалось, при использовании этого сценария для его запуска:
"start": "ts-node src/index.ts"
Этот сценарий вызывает ошибку в источнике сущности в операторе импорта для извлечения обязательных классов typeorm:
"dev": "tsc-watch --onSuccess \"node ./build/src/index.js\""
Вот ошибка:
/Users/jboss/projects/typescript/backend/src/entity/Banners.ts:1
import { Column, Entity, BaseEntity } from "typeorm";
^^^^^^
SyntaxError: Cannot use import statement outside a module
at wrapSafe (internal/modules/cjs/loader.js:983:16)
at Module._compile (internal/modules/cjs/loader.js:1033:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1103:10)
at Module.load (internal/modules/cjs/loader.js:914:32)
at Function.Module._load (internal/modules/cjs/loader.js:822:14)
at Module.require (internal/modules/cjs/loader.js:956:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Function.PlatformTools.load (/Users/jboss/projects/typescript/backend/node_modules/typeorm/platform/PlatformTools.js:114:28)
at /Users/jboss/projects/typescript/backend/node_modules/typeorm/util/DirectoryExportedClassesLoader.js:39:69
at Array.map (<anonymous>)
Это содержимое ormconfig:
{
"type": "postgres",
"host": "localhost",
"port": 5432,
"username": "jboss",
"password": "bluegrass",
"database": "video",
"synchronize": false,
"logging": true,
"entities": [
"src/entity/**/*.ts"
],
"migrations": [
"src/migration/**/*.ts"
],
"subscribers": [
"src/subscriber/**/*.ts"
],
"cli": {
"entitiesDir": "src/entity",
"migrationsDir": "src/migration",
"subscribersDir": "src/subscriber"
}
}
Вот пакет. json Содержимое:
{
"name": "backend",
"version": "0.0.1",
"description": "Awesome project developed with TypeORM.",
"devDependencies": {
"ts-node": "3.3.0",
"@types/node": "^8.0.29",
"typescript": "3.3.3333"
},
"dependencies": {
"pg": "^7.18.2",
"reflect-metadata": "^0.1.13",
"typeorm": "^0.2.24"
},
"scripts": {
"dev": "tsc-watch --onSuccess \"node ./build/src/index.js\"",
"start": "ts-node src/index.ts",
"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js"
}
}
Вот tsconfig. json content:
{
"compilerOptions": {
"lib": [
"es5",
"es6"
],
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"outDir": "./build",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true
}
}
Я надеюсь, что кто-нибудь подскажет мне, что мне нужно сделать, чтобы сделать эту работу.