Как использовать Express js? Вывод базы данных mysql в HTML

124
14 марта 2022, 13:20

Пишу сайт. Делаю всё по информации в интернете и урокам. У меня один файл со скриптом на Node.js, собрал все зависимости через Browserify. Конечный файл подключил к HTML странице, открыл её, но консоль выдала ошибку в файле bundle.js:

Uncaught TypeError: Cannot read property 'prototype' of undefined
    at Object.<anonymous> (bundle.js:29561)
    at Object.145../utils (bundle.js:30663)
    at o (bundle.js:1)
    at bundle.js:1
    at Object.141../application (bundle.js:28801)
    at o (bundle.js:1)
    at bundle.js:1
    at Object.139../lib/express (bundle.js:28129)
    at o (bundle.js:1)
    at bundle.js:1

Оказалось, дело в Express. Если его убрать, ошибок в bundle.js нет. Как я понял, он не используется на стороне клиента, и служит только для создания локального сервера разработчика?

Когда открываю сам скрипт на localhast:8080 всё работает идеально, но мне нужен сайт.

Как мне переделать следующий код, чтобы он везде нормально работал?

const express = require('express');
var app = express();
app.use('/public', express.static('public'));
const pool = mysql.createPool({
  connectionLimit: 5,
  host: "localhost",
  user: "root",
  database: "users",
  password: "password"
});
app.set("view engine", "hbs");
app.listen(8080);
  function vyvod_bd(){     
    app.get("/", function(req, res){
      pool.query("select @i:=@i+1 num, user, city from users, (select @i:=0) x order by user;", function(err, data) {
        if(err) return console.log(err);
        res.render("main.hbs", {
            users: data
        });
      });
  });
}

Бонус вопрос: нельзя каким-то подобным методом вывести базу данных в файл HTML, а не в шаблон? А то получается, что я открываю HTML, а потом скрипт загружает такой же шаблон, только с информацией с базы данных. Может для этого нужен jQuery?

Код с шаблона:

<tr><th>Num</th><th>user</th><th>city</th></tr>
                {{#each user}}
                    <tr>
                        <td>{{this.num}}</td>
                        <td>{{this.user}}</td>
                        <td>{{this.city}}</td>
                    </tr> 
                {{/each}}
READ ALSO
Виснет ие при использование яндекс карты более 600 меток

Виснет ие при использование яндекс карты более 600 меток

Подвисают браузера при отрисовке объектов на яндекс карте, объединили их в кластера, но Internet Explorer виснет само страшноЧто можно сделать? Вот...

145
Проверка на целое число JS

Проверка на целое число JS

Вступление: Писал проверку на то что вводит пользователь, реализовывал через input type = 'text', однако потом решил попробовать через prompt и результат...

299
Как задать координаты курсора?

Как задать координаты курсора?

Есть сайт, есть курсор, и есть скрипт:

150