У меня ошибка 983 при развертывании узла в героку - PullRequest
0 голосов
/ 24 апреля 2020

кто-нибудь еще имел следующую ошибку при развертывании API NODE на Heroku? Я запускаю npm start в локальной среде, и он работает с подключением к Mysql и взаимодействует с базой данных, предоставленной ClearDB MySQL Ignite.

internal/modules/cjs/loader.js:983
   throw err;
   ^
 Error: Cannot find module 'express'
 Require stack:
 - /app/dist/app.js
 - /app/dist/index.js
     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
     at Function.Module._load (internal/modules/cjs/loader.js:862:27)
     at Module.require (internal/modules/cjs/loader.js:1042:19)
     at require (internal/modules/cjs/helpers.js:77:18)
     at Object.<anonymous>(/app/dist/app.js:15:35)
     at Module._compile (internal/modules/cjs/loader.js:1156:30)
     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
     at Module.load (internal/modules/cjs/loader.js:1000:32)
     at Function.Module._load (internal/modules/cjs/loader.js:899:14)
     at Module.require (internal/modules/cjs/loader.js:1042:19) {
     code: 'MODULE_NOT_FOUND',
   requireStack: [ '/app/dist/app.js', '/app/dist/index.js' ]
 }

Пакет. json

{
  "name": "cruduser",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node dist/index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/express": "^4.17.6",
    "@types/morgan": "^1.9.0",
    "@types/mysql2": "github:types/mysql2",
    "nodemon": "^2.0.3",
    "ts-node": "^8.9.0",
    "typescript": "^3.8.3"
  }
}

Procfile

web: node dist/index.js

захват папки проекта

app.ts

import express, { Application } from 'express';
import morgan from 'morgan';
import IndexRoutes from './routes/index.routes';
import PostRoutes from './routes/post.routes';

export class App{
    private app: Application;

    constructor(private port?: number | string){
        this.app= express();
        this.settings();
        this. middelwares();
        this.routes();
    }    
    settings(){
        this.app.set('port', this.port || process.env.PORT || 5000);
    }
    middelwares(){
        this.app.use(morgan('dev'));
        this.app.use(express.json());
    }
    routes(){
        this.app.use(IndexRoutes);
        this.app.use('/posts', PostRoutes)
    }
    async listen(){
        await this.app.listen(this.app.get('port'));
        console.log('sevidor',this.app.get('port'));
    }
}

index.ts

import {App} from './app'

async function main(){
    const app = new App();
    await app.listen();
}
main();

Заранее благодарим за поддержку, которую вы можете оказать мне

...