Рейтинг:0

сервер не отображает веб-сайт после неудачной настройки сервера mysql

флаг in

Я начал получать эту ошибку, когда установил mysql_server на свой сервер как root, я использую ufw, я не знаю, должен ли я разрешать сервер mysql через мой ufw, если я должен, я не знаю, как, также на моем локальном сервере я получаю эту ошибку:

внутренние/модули/cjs/loader.js:638
    бросить ошибку;
    ^

Ошибка: не удается найти модуль «mysql»
    в Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    в Function.Module._load (internal/modules/cjs/loader.js:562:25)
    в Module.require (внутренний/модули/cjs/loader.js:692:17)
    при необходимости (внутренние/модули/cjs/helpers.js:25:18)
    at Object.<anonymous> (/mnt/c/Users/user/Documents/webdevelopment/projects/FinalYearProject/Black-Anthem-Ltd-Website/app.js:4:13)
    в Module._compile (внутренний/модули/cjs/loader.js:778:30)
    в Object.Module._extensions..js (внутренние/модули/cjs/loader.js:789:10)
    в Module.load (внутренний/модули/cjs/loader.js:653:32)
    в tryModuleLoad (внутренние/модули/cjs/loader.js:593:12)
    в Function.Module._load (internal/modules/cjs/loader.js:585:3)

в частности, он говорит, что не может найти mysql в моих каталогах. Я пытался подключить свою html-форму к базе данных mysql до того, как установил mysql_server и начал сталкиваться с этими проблемами. Это мои коды HTML-форм: Форма подписки на главную страницу:

<div class="subsect">
        <div id="subtxt">
            <h1>Subscribe to our Newsletter!</h1>
        </div>
        <div id="subform">
            <form action="/" method="post">
                <div class="ol"><div class="nam" >Name</div><div id="rsik">*</div></div>
                <div class="sd ssd"><input type="text" name="fname" placeholder="First" id="fn">
                <input type="text" name="lname" placeholder="Last" id="ln" ></div>
                <div class="ol"><div class="nam" >E-mail</div><div id="rsik">*</div></div>
                <div class="sd"></span><input type="email" name="email" placeholder="[email protected]" id="email"></div></br>
                <button type="submit">Subscribe</button>
            </form>
        </div>
    </div>

Форма запроса котировок:

<div id="formsection">
                <form action="/RAQ" method="post" id="raqform">
                    <h2>Request A Quote</h2>
                    <div class="ol"><div class="nam" >Name</div><div id="rsik">*</div></div>
                    <div class="sd ssd"><input type="text" name="sfname" placeholder="First" id="fn">
                    <input type="text" name="slname" placeholder="Last" id="ln" ></div>
                    <div class="ol"><div class="nam" >E-mail</div><div id="rsik">*</div></div>
                    <div class="sd"><input type="email" name="semail" placeholder="[email protected]" id="email"></div>
                    <div class="ol"><div class="nam" >Select A Service</div><div id="rsik">*</div></div>
                    <div class="sd">
                        <select name="services" id="ser" class="sd">
                            <option value="RDCCC">Roads, Drainage, Culverts and channels construction</option>
                            <option value="CON">Consultancy</option>
                            <option value="DIC">Dams and irrigation Construction</option>
                            <option value="WMPFC">Warehousing, Marine and port facilities construction</option>
                            <option value="CHEIUPW">Construction of concrete hard surfaces especially in unfriendly polluted water</option>
                            <option value="CBHF">Consultation on buildings and feasibility</option>
                            <option value="CIMS">Calibration, inspection and meter proving services</option>
                            <option value="DCOGPPF">Design and Construction of oil and gas production and processing facilities</option>
                            <option value="DCPS">Design and Construction of pipeline Systems</option>
                            <option value="DCRPP">Design and Construction of refineries and petrochemical plants</option>
                            <option value="ROGF">Rehabilitation of oil and gas facilities (Onshore and Offshore)</option>
                            <option value="DCMTF">Design, Construction and Maintenance of tank farms</option>
                            <option value="DCMUS">Design, Construction and Maintenance of flow stations and underground storage</option>
                            <option value="LIP">Local and international procurement</option>
                            <option value="SSFP">Support services for projects</option>
                            <option value="CMSL">Civil and mechanical equipment supply and leasing</option>
                            <option value="HSEFPSMS">Health and safety environment and fire protection systems materials supply</option>
                            <option value="EFPSMS">Environment and fire protection systems materials supply</option>
                            <option value="SSS">Structural steel supply</option>
                            <option value="POCTG">Pipeline and oil country tubular goods (OCTG) supply </option>
                            <option value="WHCPS">Wellheads and control supply</option>
                            <option value="VFS">Valves and fittings supply</option>
                            <option value="PCFSS">Pumps, Compressor and fluid systems supply</option>
                            <option value="SSMPS">Strategic sourcing and man power supplies</option>
                            <option value="LSM">Logistics and supply chain management</option>
                            <option value="PM">Project Management</option>
                            <option value="FM">Facilities Management</option>
                        </select>
                        <div class="ol"><div class="nam" >Message</div><div id="rsik">*</div></div>
                        <div class="sd"><textarea name="comment" id="" cols="30" rows="10">Type your message here</textarea></div>
                    </div>
                    <button type="submit">Request A Quote</button>
                </form>
            </div>

Это мой файл app.js:

константный экспресс = требуется ('экспресс')
постоянный путь = требуется ('путь')
постоянное приложение = экспресс()
var mysql = требуется ('mysql');
var bodyParser = требуется ('тело-парсер')
постоянный порт = 3000

var urlencodedParser = bodyParser.urlencoded({extended: false})

//Статические файлы
app.use(express.static(path.resolve(__dirname, 'public')))


//Установить представления
app.set('движок просмотра', 'ejs')

app.set('просмотры', './просмотры')

app.get('/', (требование, разрешение) => {
  res.render('Дом')
})

app.get('/О программе', (req, res) => {
  res.render('О программе')
})

app.get('/Projects', (req, res) => {
  res.render('Проекты')
})

app.get('/RAQ', (req, res) => {
  res.render('RAQ')
})

app.get('/', (требование, разрешение) => {
  res.render('дом', {qs: req.query});
})

app.post('/', urlencodedParser, (req, res) => {
  res.render('дом', {qs: req.query});
})

app.get('/raq', (req, res) => {
  res.render('raq', {qs: req.query});
})
app.post('/raq', urlencodedParser, (req, res) => {
  res.render('raq', {qs: req.query});
})
соединение var = mysql.createConnection({
  хост: 'https://www.blackanthemltd.site',
  пользователь: 'абайоми',
  пароль : '',
  база данных: «подписчики»
});
 
connection.connect (функция (ошибка) {
  если (ошибиться) бросить ошибку;
  console.log('подключено..')
});

app.post('/', function(req,res){
  console.log(треб.тело);

  var sql ="вставить в пользовательские значения('"+req.body.fname+"','"+req.body.lname+"',"+req.body.email+")"
  connection.query(sql, функция (ошибка, результаты) {
    если (ошибка) бросить ошибку;
    console.log('Решение: ', results[0].solution);
  });

  res.render('Главная', { title: 'Данные сохранены',
  сообщение: «Данные успешно сохранены».})

  соединение.конец();
})

var connection2 = mysql.createConnection({
  хост: 'https://www.blackanthemltd.site',
  пользователь: 'абайоми',
  пароль : '',
  база данных: 'Quotation_requests'
});
 
connection2.connect (функция (ошибка) {
  если (ошибиться) бросить ошибку;
  console.log('подключено..')
});

app.post('/RAQ', function(req,res){
  console.log(треб.тело);

  var sql ="вставить в пользовательские значения('"+req.body.sfname+"', '"+req.body.slname+"', '"+req.body.semail+"', '"+req.body.services+ "', "+req.body.comment+")"
  connection2.query(sql, функция (ошибка, результаты) {
    если (ошибка) бросить ошибку;
    console.log('Решение: ', results[0].solution);
  });

  res.render('RAQ', { title: 'Данные сохранены',
  сообщение: «Данные успешно сохранены».})

  соединение2.конец();
})

app.listen(порт, () => {
      console.log(`Пример приложения, прослушивающего http://localhost:${port}`)
})


Это мой файл package.json на моем удаленном сервере:

{
  "имя": "балфип",
  "версия": "1.0.0",
  "description": "Проект последнего года",
  "основной": "app.js",
  "скрипты": {
    "test": "echo \"Ошибка: тест не указан\" && выход 1",
    "старт": "nodemon app.js"
  },
  "автор": "абайоми",
  "лицензия": "MIT",
  "зависимости": {
    "Корс": "^ 2.8.5",
    "ejs": "^3.1.6",
    "экспресс": "^4.17.1"
  },
  "devDependencies": {
    "узел": "^2.0.12"
  }
}

это мой файл package.json на моем реальном сервере:

{
  "имя": "балфип",
  "версия": "1.0.0",
  "description": "Проект последнего года",
  "основной": "app.js",
  "скрипты": {
    "test": "echo \"Ошибка: тест не указан\" && выход 1",
    "старт": "nodemon app.js"
  },
  "автор": "абайоми",
  "лицензия": "MIT",
  "зависимости": {
    "парсер тела": "^1.19.0",
    "Корс": "^ 2.8.5",
    "ejs": "^3.1.6",
    "экспресс": "^4.17.1",
    "mysql": "^2.18.1",
    "nodemailer": "^6.6.3",
    "nodemailer-mailgun-транспорт": "^2.1.3"
  },
  "devDependencies": {
    "узел": "^2.0.12"
  }
}

Пожалуйста, что я сделал не так? Я внес некоторые изменения в свою кодовую базу, моя веб-страница перестала отображать ошибку и загружалась нормально, что означает, что mysql успешно подключен, но при нажатии кнопки отправки в моей форме после ее заполнения я получил ошибку:

Не удается опубликовать /

вот изменения, которые я внес в кодовую базу, особенно только в мой файл app.js:

константный экспресс = требуется ('экспресс')
    постоянный путь = требуется ('путь')
    постоянное приложение = экспресс()
    var mysql = требуется ('mysql');
    var bodyParser = требуется ('тело-парсер')
    постоянный порт = 3000
    
    var urlencodedParser = bodyParser.urlencoded({extended: false})
    
    //Статические файлы
    app.use(express.static(path.resolve(__dirname, 'public')))
    
    
    //Установить представления
    app.set('движок просмотра', 'ejs')
    
    app.set('просмотры', './просмотры')
    
    app.get('/', (требование, разрешение) => {
      res.render('Дом')
    })
    
    app.get('/О программе', (req, res) => {
      res.render('О программе')
    })
    
    app.get('/Projects', (req, res) => {
      res.render('Проекты')
    })
    
    app.get('/RAQ', (req, res) => {
      res.render('RAQ')
    })
    
    app.get('/', (требование, разрешение) => {
      res.render('дом', {qs: req.query});
    })
    
    app.post('/', urlencodedParser, (req, res) => {
      res.render('дом', {qs: req.query});
    })
    соединение var = mysql.createConnection({
      хост: 'https://www.blackanthemltd.site',
      пользователь: «корень»,
      пароль: 'Mynameisabayomi1.',
      база данных: 'бал'
    });
     
    connection.connect (функция (ошибка) {
      если (ошибиться) бросить ошибку;
      console.log('подключено..')
    });
    app.post('/', function(req,res){
      console.log(треб.тело);
    
      var sql ="вставить в пользовательские значения('"+req.body.fn+"','"+req.body.ln+"',"+req.body.email+")"
      connection.query(sql, функция (ошибка, результаты) {
        если (ошибка) бросить ошибку;
        console.log('Решение: ', results[0].solution);
      });
    
      res.render('Главная', { title: 'Данные сохранены',
      сообщение: «Данные успешно сохранены».})
    
      соединение.конец();
    })
    app.listen(порт, () => {
          console.log(`Пример приложения, прослушивающего http://localhost:${port}`)
    })

пожалуйста, как я могу перестать получать эту ошибку.

флаг in
MySQL находится на том же сервере, что и веб-хост? Или MySQL работает на отдельном сервере?
Abayomi Usman avatar
флаг in
Он находится на том же сервере, что и веб-хост.
Рейтинг:0
флаг in

Если MySQL работает на том же компьютере, что и веб-сервер, вам не нужно ничего изменять с помощью UFW.Вместо этого вы захотите изменить настройки подключения:

соединение var = mysql.createConnection({
    хост: «127.0.0.1»,
    пользователь: 'myWebApp',
    пароль: 'superSecretPassword!123.',
    база данных: 'бал'
});

Примечания:

  1. хозяин значение обычно 127.0.0.1 или же локальный хост когда база данных находится в той же системе, что и веб-сервер.
  2. Вы не можете (легко) использовать корень Учетная запись MySQL для веб-приложений больше не используется, поэтому вам потребуется создать новую учетную запись, которая имеет доступ к базе данных, которую вы используете:
    1. Подключиться к MySQL на сервере
      sudo mysql -u корень
      
      Примечание: Вот как корень Доступ к учетной записи MySQL открыт. Тебе нужно иметь судо привилегии на сервере. Это функция безопасности и одна из многих причин, по которой веб-серверы не могут использовать корень счет больше.
    2. Создайте новую учетную запись и предоставьте ей полный доступ только к той базе данных, которая нужна сайту:
      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'baluser'@'localhost', ИДЕНТИФИЦИРОВАННОГО С помощью mysql_native_password BY 'superSecretPassword!123';
      GRANT ALL ON `bal`.* TO 'baluser'@'localhost';
      

Это должно дать вам то, что вам нужно для начала.

Abayomi Usman avatar
флаг in
Хорошо, позвольте мне попробовать это, я надеюсь, что это сработает
Abayomi Usman avatar
флаг in
Хорошо, позвольте мне попробовать это, я надеюсь, что это сработает

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.