@spench1

Как избавиться от ошибки?

У меня есть код
на node js и через опеределенное время у меня node js отключаеться с ошибкой,
вот код
var express = require("express");
var fs = require("fs");
var mysql = require("mysql2")
const app = express();
const jsonParser = express.json();
const connection = mysql.createConnection({
	host: "localhost",
	user: "root",
	database: "site",
	password: "",
	dateStrings: 'date'
})
app.use(express.static(__dirname + "/public"));
app.post("/link", jsonParser, function(request, response) {
	if (!request.body) {
		console.log("error")
	} else {
		fs.readFile(`public/SitePages/${request.body.userName}.html`, 'utf8', function(err, data) {
			if (err) {
				console.log("Ошибка:" + `SitePages/${request.body.userName}.html`)
			} else {
				response.json(data)
			}
		})
	}
})

app.get("/home", function(request, response) {
	fs.readFile("ViewPage.html", 'utf8', function(err, data) {
		if (err) {
			console.log("Ошибка")
		} else {
			var file_read = fs.readFileSync("public/SitePages/home.html");
			data = data.replace("{content}", file_read);
			response.end(data)
		}
	})
})

app.listen(3000)

вот такая ошибка:
Error: Connection lost: The server closed the connection.
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hello_my_name_is_dany
Backend Developer (Node.js, PHP, C#)
Видимо mysql обрывает коннект
Попробуйте передподключаться, если вас сбрасывают. Также не забудьте всё проверить данные для подключения к базе.
let connection;

function connectDatabase() {
  connection = mysql.createConnection(/* ваши параметры */);

  connection.connect(function (err) {
    // Если сервер перезагрузился или упал 
    if (err) setTimeout(connectDatabase, 2000); // Ждём две секунды, пробуем снова
  });

  connection.on('error', function (err) {
    // если потеряли соединение, то подключаемся заново
    // в остальных случаях выкидываем exception, чтобы узнать, что произошло
    if (err.code === 'PROTOCOL_CONNECTION_LOST') connectDatabase();
    else throw err;
  });
}

connectDatabase();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы