кто-нибудь еще имел следующую ошибку при развертывании 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();
Заранее благодарим за поддержку, которую вы можете оказать мне