Как экспортировать параметры запроса get в другой файл JS - PullRequest
0 голосов
/ 25 сентября 2018

app.js

app.get('/save', function(req,res){

var switchInput = { 
    sw1: req.query.switch1,
    sw2: req.query.switch2,
    sw3: req.query.switch3,
    sw4: req.query.switch4,
    sw5: req.query.switch5,
    sw6: req.query.switch6,
}

console.log(switchInput);  
module.exports = switchInput

res.send(switchInput); 

});

simulate.js

    var mongoose = require('mongoose');
    var suit = require('../app')

...

function batteryLife(t){  
    var elapsed = Date.now() - t;
    t_remaining = fullTime - elapsed; 
    t_battery = secondsToHms(Math.floor(t_remaining/1000));
   //console.log(Math.floor(elapsed/1000) + ' s');

    console.log(suit.sw1);

    return t_battery; 
};

Журнал консоли:

{ sw1: 'true',
  sw2: 'true',
  sw3: 'true',
  sw4: 'true',
  sw5: 'true',
  sw6: 'true' }
--------------Simulation started--------------
undefined
undefined
undefined
undefined
--------------Simulation stopped--------------

Когда я пытаюсь получить доступ к этим значениям из другого jsфайл, который они печатают как неопределенный Я использую почтальон для имитации значений

Значения будут регистрироваться отсюда, но выводить неопределенные данные из другого файла js

Есть ли способ исправить это, я не уверенчто я делаю неправильно, значения загружаются в "inputSwitch", но не выходят на сторону simulate.js

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Прежде всего, при использовании вашего любимого веб-сервера, такого как Express, вы запрашиваете aka (req) будет / может перетекать в промежуточное программное обеспечение до достижения вашей конкретной конечной точки.Это означает, что ваши параметры req доступны в любое время там, что может помочь вам для определенной логики кода middleware-the-core-of-node-js-apps .

Я согласен с vibhor1997a, выне следует экспортировать что-то туда, в основном вы только module.exports «вещи» в конце файла, а не что-то во время выполнения.

Вы можете сделать, если вы действительно хотите иметь дело с switchInput в другомfile do:

  • делать то, что предлагает vibhor1997a (функция синхронизации или асинхронности)
  • иметь промежуточное ПО до достижения вашей конечной точки
  • вызвало событие с вашим switchInput какаргумент пример
0 голосов
/ 25 сентября 2018

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

Пример

app.js

const simulate = require('./simulate');
app.get('/save', function(req,res){

var switchInput = { 
    sw1: req.query.switch1,
    sw2: req.query.switch2,
    sw3: req.query.switch3,
    sw4: req.query.switch4,
    sw5: req.query.switch5,
    sw6: req.query.switch6,
}

simulate(switchInput);

res.send(switchInput); 

});

simulate.js

module.exports = function(input){
   //have all your functions and code that require input here
   function foo(){...}
   function bar(){...}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...