Express - розетка вешать - PullRequest
       26

Express - розетка вешать

0 голосов
/ 07 февраля 2020

Я написал этот код для своей стороны сервера приложений:

const express = require('express');
const app = express();
const path = require('path');
const morgan = require('morgan');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
require('dotenv').config()

const userRoutes = require('./api/routes/user');

const port = process.env.PORT || 3000;

mongoose.connect(String(process.env.DB_CONNECT), {
  useCreateIndex: true,
  useNewUrlParser: true,
  useUnifiedTopology: true
}, () => console.log('Connect to the database'));

mongoose.Promise = global.Promise;

app.use(morgan('dev'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use( (req, res, next) => {
  res.header('Access-Control-Allow-Origin', 'https://constafast.cf');
  res.header(
    'Access-Control-Allow-Headers',
    'Origin, X-Requested-With, Content-Type, Accept, Authorization'
  );
  res.header('Connection', 'Keep-Alive');

  if ( req.method === 'OPTIONS' ) {
    res.header('Access-Control-Allow-Methods', 'PUT, POST, PATCH, DELETE, GET');
    return res.status(200).json({});
  }

  next();
});

app.use('/api/user', userRoutes);

app.use( (req, res, next) => {
  const error = new Error('Not found');
  error.status = 404;
  next(error);
});

app.use( (error, req, res, next) => {
  res.status(error.status || 500);
  res.json({
    error: {
      message: error.message
    }
  });
});

app.listen(port, () => console.log(`Server up and running on port ${port}`));

Я развернул этот сервер по технологии zeit, но иногда я замечаю (в последнее время это часто случается), что запрос не имеет успеха. Просматривая журнал zeit, я вижу эту ошибку:

{"errorType": "Ошибка", "errorMessage": "зависание сокета", "код": "ECONNRESET", "стек" : ["Ошибка: сокет зависает", "в connResetException (внутренняя / ошибки. js: 570: 14)", "в Socket.socketOnEnd (_http_client. js: 440: 23)", "в Socket. emit (events. js: 215: 7) "," at endReadableNT (_stream_readable. js: 1183: 12) "," at processTicksAndRejected (internal / process / task_queues. js: 80: 21) "] }

Как я могу навсегда предотвратить или устранить эту ошибку?

...