Я написал этот код для своей стороны сервера приложений:
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) "] }
Как я могу навсегда предотвратить или устранить эту ошибку?