Загрузка...

Как сделать синхронный запрос require?

Тема в разделе Node.js создана пользователем RichPerson 23 авг 2022. 198 просмотров

  1. RichPerson
    RichPerson Автор темы 23 авг 2022 Разработка - https://zelenka.guru/threads/4480553/ 2160 23 сен 2019
    Проблема заключается в том, что при экспорте переменных из другого .js файла через module.exports переменные undefined. Как я понимаю запрос выполняется ассинхронно и не успевает получить значение переменной перед ее применением. Есть какие-либо решения данного вопроса?
     
  2. Gumus
    Require - это очень старая штука. Лучше переходи на js module(import/export. Link: https://doka.guide/js/modules/). А если говорить про require, то не слышал, чтобы он работал асинхронно. Вероятнее всего не так экспортируешь. Вот статья про require: https://habr.com/ru/post/217901/
     
    1. RichPerson Автор темы
      Gumus, Благодарю, сейчас прочту и отпишу о своих успехах
    2. RichPerson Автор темы
      Gumus, [IMG] Здесь не совсем понимаю почему не определяет export
    3. Gumus
      RichPerson, переменные нельзя экспортировать. Засунь её в объект и уже объект экспортируй
    4. Посмотреть следующие комментарии (4)
  3. Extremum
    Extremum 23 авг 2022 Не стоит температурить 263 24 июл 2018
    Залей сурсы, или хотя бы тут части кода.
    Сам по себе require уже синхронный, думаю ошибка в другом.
    Пиши я взгляну, можешь в телегу
     
    23 авг 2022 Изменено
    1. RichPerson Автор темы
      Extremum,
      JavaScript
      //index.js

      server.use(express.static(__dirname))
      const user = '5100771106'
      const uniqId = '4545445'


      server.get('/', function(request, response){
      response.sendFile(__dirname + '/index.html')
      })
      server.use('/' + uniqId + '.json', function(request, response){
      if(fs.existsSync(path.join(__dirname + '/users/' + user + '/Url/' + uniqId + '.json'))){
      let IdUrl = path.join(__dirname + '/users/' + user + '/Url/' + uniqId + '.json')
      //let UrlInfo = JSON.parse(fs.readFileSync(IdUrl))
      response.sendFile(__dirname + '/index.html')
      const NewTransition = true

      module.exports = {
      NewTransition,
      user
      }
      else{
      console.log('Файл не найден')
      response.sendStatus(404)
      }
      })

      server.listen(3000)
      console.log('Сервер запущен на 3000')

      module.exports = server


      //bot.js
      const { user, server, NewTransition } = require('./index.js')
      console.log(user)
    2. Посмотреть следующие комментарии (1)
  4. Extremum
    Extremum 23 авг 2022 Не стоит температурить 263 24 июл 2018
    Если тебе нужно экспортировать несколько сущностей то сделай это так:
    JavaScript
    module.exports = {
    server,
    user,
    NewTransition
    }
     
    1. RichPerson Автор темы
      Extremum, [IMG] Я их просто экспортировал отдельно
    2. RichPerson Автор темы
      Extremum, В этом и заключалась вся проблема?
Загрузка...
Top