Как создать калькулятор любви с помощью Node.js?

Опубликовано: 7 Октября, 2022

В этой статье мы собираемся создать калькулятор любви. Калькулятор любви используется для расчета процента любви между партнерами.

Функциональность:

  • Возьмите имя пользователя
  • Возьмите имя партнера пользователя
  • Показать процент любви

Подход: мы собираемся использовать Body Parser, с помощью которого мы можем фиксировать входные данные пользователя из формы, такие как имя пользователя и имя партнера пользователя. Затем мы рассчитаем процент от них и отправим данные пациентов на веб-страницу, используя ЭЖС. EJS — это промежуточное ПО, упрощающее отправку данных из файла вашего сервера (app.js или server.js) на веб-страницу.

Реализация: Ниже приведена пошаговая реализация описанного выше подхода.

Шаг 1: Настройка проекта

Инициализирует NPM: создайте и найдите папку проекта в терминале и введите команду

npm init -y

Он инициализирует наше приложение узла и создает файл package.json.

Установите зависимости: найдите корневой каталог проекта в терминале и введите команду

npm install express ejs

Чтобы установить Express и Ejs в качестве зависимостей внутри вашего проекта

Создайте файл сервера: создайте файл «app.js» , внутри этого файла укажите модуль Express и создайте постоянное «приложение» для создания экземпляра модуля Express, затем установите EJS в качестве механизма просмотра по умолчанию.

const express = require("express");
const app = express();
app.set("view engine", "ejs");

Переупорядочите свои каталоги : необходимо использовать «.ejs» в качестве расширения для файла HTML вместо «.html» для использования EJS внутри него. Затем вам нужно переместить каждый файл «.ejs» в каталоге представлений внутри вашего корневого каталога. EJS по умолчанию ищет файлы '.ejs' внутри папки представлений.

Используйте переменную EJS: создайте «home.ejs», внутри «home.ejs» вы должны использовать переменные EJS для получения значений из файла вашего сервера. Вы можете объявлять переменные в EJS, например

<%= variableName %>

HTML




<!DOCTYPE html>
<html>
  
<head>
    <title>Page Title</title>
</head>
  
<body>
    <%= variableName %>
</body>
  
</html>

Отправка данных в переменную: внутри файла вашего сервера ( app.js или index.js ) вы можете отправить файл EJS вместе с некоторыми данными, используя метод рендеринга.

app.get("/", (req, res) => {
    res.render("home", { variableName: "Hello Geeks!" })
})

Javascript




const express = require("express")
const app = express()
app.set("view engine", "ejs")
  
app.get("/", (req, res) => {
    res.render("home", { variableName: "Hello Geeks!" })
})
  
app.listen(3000, (req, res) => {
    console.log("App is running on port 3000")
})

Извлечение данных из формы в app.js: чтобы получить входные значения формы, мы должны использовать пакет узлов с именем body-parser.

Установить парсер тела:

npm install body-parser

Требуется модуль body-parser:

const bodyParser = require("body-parser")

А потом:

app.use( bodyParser.json() );      
app.use(bodyParser.urlencoded({    
    extended: true
}));

Затем мы можем обрабатывать данные формы, используя объект запроса.

Шаг 2: Создайте функциональные возможности:

Возьмите имя пользователя и имя партнера пользователя: для этого мы должны создать форму внутри файла «home.ejs» и обработать данные формы в нашем файле «app.js» с помощью Body Parser.

<form action="/" method="post">
       <input type="text" name="username" placeholder="Your Name">
       <input type="text" name="partnername" placeholder="Your Partner Name">
       <button type="submit">Calculator</button>
</form>

Обработка данных формы внутри app.js: мы должны получить значения из формы, используя req.body.valueName, а затем выполнить операцию, показанную ниже, чтобы вычислить значение в процентах.

app.post("/", (req, res)=> {
   userName = req.body.username;
   partnerName = req.body.partnername;
   var combinedNames = userName + partnerName
   var lowerNames = combinedNames.toLowerCase()
   console.log(lowerNames);
   var t = lowerNames.split("t").length - 1;
   var r = lowerNames.split("r").length - 1;
   var u = lowerNames.split("u").length - 1;
   var e = lowerNames.split("e").length - 1;
   var firstDigit = t + r + u + e
   if (firstDigit < 5) {
       firstDigit = firstDigit + 5;
   }
   var l = lowerNames.split("l").length - 1;
   var o = lowerNames.split("o").length - 1;
   var v = lowerNames.split("v").length - 1;
   var e = lowerNames.split("e").length - 1;
   var secondDigit = l + o + v + e
   var lovePercentage = firstDigit + "" + secondDigit;
});

Отправить значение на страницу «home.ejs»: Как и в предыдущем шаге, мы отправляем строку «Hello Geeks!» на домашнюю страницу, теперь давайте отправим процентное значение в переменную 'lovePercentage' .

res.render("home.ejs", {percentage:  lovePercentage});

Получение значения lovePercentage: чтобы получить значение, отправленное из «app.js», мы должны использовать переменную ejs внутри « home.ejs» .

<p>Love Percentage: <%= percentage %></p>

Ниже приведен полный код для создания калькулятора любви с использованием Node.js:

app.js

Javascript




const express = require("express");
const app = express();
app.set("view engine", "ejs");
  
const bodyParser = require("body-parser")
  
app.use( bodyParser.json() );      
app.use(bodyParser.urlencoded({    
extended: true
}));
  
app.get("/", (req, res) => {
    res.render("home.ejs", {percentage:  ""});
});
  
app.post("/", (req, res)=> {
    userName = req.body.username;
    partnerName = req.body.partnername;
  
    var combinedNames = userName + partnerName
  
    var lowerNames = combinedNames.toLowerCase()
    console.log(lowerNames);
  
    var t = lowerNames.split("t").length - 1;
    var r = lowerNames.split("r").length - 1;
    var u = lowerNames.split("u").length - 1;
    var e = lowerNames.split("e").length - 1;
    var firstDigit = t + r + u + e
  
    if (firstDigit < 5) {
        firstDigit = firstDigit + 5;
    }
  
    var l = lowerNames.split("l").length - 1;
    var o = lowerNames.split("o").length - 1;
    var v = lowerNames.split("v").length - 1;
    var e = lowerNames.split("e").length - 1;
    var secondDigit = l + o + v + e
  
    var lovePercentage = firstDigit + "" + secondDigit;
  
    res.render("home.ejs", {percentage:  lovePercentage});
});
  
app.listen(3000);

home.ejs

HTML




<!DOCTYPE html>
<html lang="en">
<head>
    <title>Love Calculator</title>
</head>
<body>
    <form action="/" method="post">
        <input type="text" name="username" 
               placeholder="Your Name">
        <input type="text" name="partnername" 
               placeholder="Your Partner Name">
        <button type="submit">Calculator</button>
    </form>
    
      
<p>Love Percentage: <%= percentage %></p>
  
</body>
</html>

Шаги для запуска приложения: Внутри терминала введите команду для запуска вашего скрипта.

node app.js

Выход: