Node Js и заполнение HTML-страниц

Мне дали проект node js, и я ничего не знаю о node js. Я просмотрел различные учебные пособия и мне удалось создать HTML-страницу для регистрации и последующего входа в приложение. Я подключен к базе данных mongo, в которой хранится информация об имени пользователя и пароле (пока только одна таблица, хранятся только имя пользователя и пароль)

После того, как пользователь войдет в систему, я хочу отобразить имя пользователя на «домашней» странице, поэтому мне хотелось бы, чтобы это продолжалось, но я не слишком понимаю, как этого добиться. Я вырос в основном на C#, так что на данный момент я немного похож на рыбу, выброшенную из воды.

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

Имя приложения

- Папка конфигурации

  -database.js (inside config folder)

  -passport.js (inside config folder)

- - Папка моделей

  -routes.js (inside models folder)

   -user.js (inside models folder)
   -user.js (inside models folder)

- Папка просмотров

  -Login.html (inside views folder)

   -signup.html (inside views folder)

   -Home.html (inside views folder)

   -Index.html (inside views folder)

server.js (прямо под приложением)

Я думаю, у меня двоякий вопрос.

Во-первых, как мне связаться со страницей html с точки зрения установки значений для меток или входов и т. д. из файла (ов) .js в их различных папках.

во-вторых, как мне сообщать / совместно использовать переменные между файлами .js?

Примеры, которые мне удалось найти в Интернете, в основном касаются того, как манипулировать файлом html непосредственно из файла server.js, но, поскольку у меня есть это разделение, я не уверен, как это достигается. Любая помощь или указание на учебные пособия / примеры, которые я, возможно, пропустил, были бы действительно замечательными.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
1 042
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

1.Я использую для этого руль

С его помощью вы можете размещать js-переменные в html (также отображать # каждую из них),

вот www рулей: https://handlebarsjs.com/

2. Для обмена переменными вы можете использовать module.exports

ПРИМЕР для 1:

получить значения из db:

router.get('/', (req, res)=>{
 Recipe.find({})
  .then(recipes=>{
    res.render('admin/recipes', {recipes: recipes});
 });
});

отобразить их в представлении:

{{#each recipes}}
  <tr>
    <td><img style = "height:45px;" class = "img-responsive" src = "/uploads/{{file}}" alt = ""></td>
    <td>{{title}}</td>
    <td>{{allowComments}}</td>
    <td>{{short}}</td>
    <td><a href = "/admin/recipes/edit/{{id}}" class = "btn btn-info">Edit</a></td>
    <td>
      <form action = "/admin/recipes/{{id}}?_method=DELETE" method = "post">
        <button type = "submit" class = "btn btn-danger">Delete</button>
      </form>
    </td>
  </tr>
{{/each}}

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

ПРИМЕР для 2:

const path = require('path');

module.exports = {
 uploadDir: path.join(__dirname, '../public/uploads/'),
 isEmpty: function(obj){
    for(let key in obj){
        if (obj.hasOwnProperty(key)) {
            return false;
        }
    }
    return true;
 }
};

Вы можете запросить их из другого файла следующим образом:

const{ isEmpty, uploadDir } = require('../../helpers/upload-helper');

Надеюсь, это вам поможет.

Обновлено:

Я думаю, что йой шолуд тоже проверит эту часть экспресс-документации:

https://expressjs.com/en/4x/api.html#res.render

http://expressjs.com/en/guide/using-template-engines.html

Спасибо за публикацию, занят ее рассмотрением. ожидая ответа, я все время пытался в этом разобраться и искать убедительные примеры. Я вижу много .ejs вместо html. есть ли преимущества в использовании этого. Я получаю эти головы на территории личного мнения, но меня интересует любое мнение в этом отношении, как я уже сказал, новичок в nodeJS

user7592671 12.07.2018 09:57

@ user7592671, я добавил ссылки, которые тоже могут помочь вам в моем ответе.

Adam 12.07.2018 20:32

Другие вопросы по теме