Node.js / Nest. js Ошибка в производственном режиме: отказано в разрешении EACCES 3000 - PullRequest
0 голосов
/ 24 марта 2020

У меня есть гнездо. js (node.js based framework) бэкэнд. Если я запускаю его в режиме разработки (конечно, с помощью nodemon), все работает как положено. Я могу даже связаться с ним по сети через порт 3000 без каких-либо ошибок.

Но когда я запускаю его в производственном режиме с> npm run start: prod <, Nest запускается нормально, но сразу после броска при запуске следующая ошибка: </p>

(...)
[Nest] 15780   - 2020-03-24 15:13:24   [NestApplication] Nest application successfully started +1101ms
events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 3000,
    at Server.setupListenHandle [as _listen2] (net.js:1284:19)
    at listenInCluster (net.js:1349:12)
    at Server.listen (net.js:1448:5)
    at ExpressAdapter.listen (C:\...\SampleProject\node_modules\@nestjs\platform-express\adapters\express-adapter.js:44:32)
    at NestApplication.listen (C:\...\SampleProject\node_modules\@nestjs\core\nest-application.js:140:26)
    at async bootstrap (C:\...\SampleProject\dist\main.js:12:5)
Emitted 'error' event on WebSocketServer instance at:
    at Server.emit (events.js:210:5)
    at emitErrorNT (net.js:1328:8)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  code: 'EACCES',
  errno: 'EACCES',
  syscall: 'listen',
  address: '3000,',
  port: -1
}
npm ERR! code ELIFECYCLE
npm ERR! SampleProject@0.3.1 start:prod: `node dist/main`
npm ERR! Exit status 1
(...)

Я уже попробовал следующее:

  • удалена папка node_modules и блокировка пакета. json и перезагруженные зависимости
  • попытался запустить powershell как администратор
  • обновил зависимости проекта до последних версий

О, мой файл main.ts:

import { NestFactory } from '@nestjs/core';
import { NestExpressApplication } from '@nestjs/platform-express';
import { AppModule } from './app.module';
import { join } from 'path';
import * as Express from 'express';
import { ExpressAdapter } from '@nestjs/platform-express';

async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule);

  app.useStaticAssets(join(__dirname, '/uploads'));
  app.setBaseViewsDir(join(__dirname, '/views'));
  app.setViewEngine('hbs');
  app.enableCors();
  await app.listen( process.env.PORT || 3000);
}
bootstrap();

Понятия не имею, что это " events. js "Файл, который выдает ошибку. Может быть, nest js встроен в обработчик событий? Извините, что беспокою вас, ребята, но я не нашел в Интернете ничего похожего на эту странность. Если нужно, я мог бы предоставить вам больше кода или ссылку на мой репозиторий github.

...