Ответы пользователя по тегу Node.js
  • Почему при установке приложения есть ошибка cannot find module @electron/remote/main?

    vool
    @vool Автор вопроса
    Разработчик
    Значит решил проблему сам, сначала установил через нпм remote, потом перед сборкой проекта удалил папку node_modules, переместил remote в раздел "dependencies", и потом собрал проект, и только после этого стало работать)
    Ответ написан
    Комментировать
  • Почему не работает nodemailer?

    vool
    @vool
    Разработчик
    Можно ещё таким способом отправлять:
    (Пример отправки кода подтверждения)
    const nodemailer = require('nodemailer');
    const directTransport = require('nodemailer-direct-transport');
    const fromHost = `mysite.com`;
    const from = 'site' + '@' + "gmail.com";
    
    console.log('Email will be sent from:');
    console.log(from, '\n');
    
    // Ask for email address
    const to = prompt('Enter your email address ').trim();
    
    // Генерируем код
    const trueVerificationCode = Math.round(Math.random() * (10e5 - 1)).toString();
    
    const transport = nodemailer.createTransport(directTransport({
      name: fromHost
    }));
    let y = trueVerificationCode;
    // Отправляем письмо
    transport.sendMail({
      from, to,
      subject: 'Verify your email address',
      html: `
             <div style="width:100%;display:flex;flex-direction:column;justify-content:center;
             align-items:center;background:lightblue;padding:50px;box-sizing:border-box;">
             <h1>Verify your email address</h1>
             <p>Site has tried to verify your email address "${to}".
             If this wasn't you, ignore and delete this email. Otherwise, the verification code is bellow:</p>
             <div style="padding:50px;background:lightgray;border-radius:10px;font-size:30px;
             font-family:monospace;">${trueVerificationCode}</div></div>
            `
    }, (err, data) => {
      if (err) {
        console.error('There was an error:', err);
      } else {
        console.log('\nVerification email sent, check your inbox\n');
        const userVerificationCode = prompt('Enter your verification code ');
        if (userVerificationCode == trueVerificationCode) {
          console.log('Email address verified');
        } else {
          console.log('Code incorrect');
        }
      }
    });
    Ответ написан
    6 комментариев
  • Почему не работает код на node.js?

    vool
    @vool
    Разработчик
    Код действительно рабочий, значит проблемма в хостинге
    Ответ написан
    1 комментарий
  • Как в javascript добавить кнопку в push-уведомление?

    vool
    @vool
    Разработчик
    А в чём проблемма создать свой пуш?? Делаете на ноде сайт, прикручиваете сокеты в реальном времени и на сервере отправляете событие а на клиенте ловите - и создаёте свой пуш со всеми возможностями как вы хотите
    Ответ написан
    Комментировать
  • Как отслеживать закрытие вкладки в Node.js?

    vool
    @vool
    Разработчик
    Сразу вам скажу: на сервере ноды вы не сможете контролировать гугл-хранилища по типу sessionStorage, localStorage, а вот на клиенте на ванильном js можна отслеживать вкладку:
    let tab = window.open("url");
    let interval = setInterval(() => {
      if (tab.closed) {
          //Реализовуете выход когда вкладка закрыта
          clearInterval(interval);
      }
    }, 200);


    Правда, вам придётся каким то образом заставить пользователя оставить открытую вкладку которая проверяет другую
    Это вообще костыльный способ, проблемма в том что программист не может отследить закрытие текущей вкладки((

    Вот нашёл какое то решение(не проверял, но кажется что не будет всегда срабатывать):
    https://qna.habr.com/q/339145
    Ответ написан
    Комментировать
  • Как подключить библиотеку?

    vool
    @vool
    Разработчик
    Для того чтобы в Node.js использовать import перейдите в файл package.json и добавьте вот это:
    "type": "module"
    но тогда вы уже не сможете ымпортировать через require, только через import,

    и тогда ваш код(при "type": "module"):
    import chalk from 'chalk';

    Но если вы хотите через require и у вас странная ошибка
    require() of ES Module /node_modules/chalk/source/index.js from /src/index.js not supported.
    то мне помогло вот это:
    просто в том же package.json измените тип модуля на cjs, вот так:
    "type": "cjs"

    Тогда вы сможете импортировать либы через require
    Ответ написан
    Комментировать
  • Как с req вытащить User-Agent Node.js?

    vool
    @vool Автор вопроса
    Разработчик
    Извиняюсь за беспокойство, сам спросил - сам ответил))
    нашел как, просто написать так:
    req.headers["user-agent"]
    Ответ написан
    Комментировать
  • Как получить айпи юзера?

    vool
    @vool
    Разработчик
    На сервере:
    socket.on("text", (data) => {
        let myIp = socket.handshake.headers["x-forwarded-for"];
    });
    Ответ написан
    Комментировать
  • Как отправить писмо на почту в node js?

    vool
    @vool
    Разработчик
    Вы можете проще сделать:
    const nodemailer = require('nodemailer');
    const directTransport = require('nodemailer-direct-transport');
    const fromHost = `mail.my`;
    const from = 'Mail' + '@' + fromHost; //придумываете свою почту(может быть несуществующая)
    const to = prompt('Кому отправить: ').trim();
    const transport = nodemailer.createTransport(directTransport({
      name: fromHost
    }));
    transport.sendMail({
      from, to,
      subject: 'Заголовок письма',
      html: `
             <h1>Ваше письмо</h1>
            `
    }, (err, data) => {
      if (err) {
        console.error('Ошибка при отправке:', err);
      } else {
        console.log('Письмо отправлено');
      }
    });


    И всё, вот скрины как оно прийдёт:
    63c41169c0fea262627784.png

    63c411a4f2815663969723.png

    63c411c481f06517623203.png
    Ответ написан
    Комментировать
  • Почему env возвращает undefined?

    vool
    @vool
    Разработчик
    Может если напишите process.env.REACT_URL_MOCKAPI_API поможет?
    Ответ написан
    Комментировать
  • Почему не отвечает localhost при работе в node.js?

    vool
    @vool
    Разработчик
    const express = require('express');
    const app = express();
    exports.app = app;
    const http = require('http');
    const server = http.createServer(app);
    app.get("/hello", (req, res) => {
        //либо перенапрвление на сайт:
       res.redirect("https://....");
       //либо отдать свою страницу(файл):
       res.sendFile(__dirname + '/public/index.html');
       //или отправить напрямую html-код:
       res.send(`
          <html>
             <head>
                <title>Server</title>
             </head>
             <body>
                <h1>hello server</h1>
             </body>
          </html>
       `);
    })
    server.listen(8080, () => {
        //console.log("\x1B[32m%c started", 'color: pink; background: red;');
    });

    А потом перейди в браузер по порту 8080 и в url добавь в конец /hello

    63a9d0141008e516980901.png

    Либо просто измени свой код на:

    const { Server } = require('http');
    const s = Server();
    s.addListener('request', function (req, res) {
      res.end('My first server!\n');
    });
    s.listen(4321);
    Ответ написан
    Комментировать