Почему этот (запрос) модуль не работает в моем проекте?

#javascript #node.js #electron

#javascript #node.js #электрон

Вопрос:

Я все еще новичок в electron, но у меня есть проблема, которую я не могу решить. Запрос не отправляется ни на один веб-сайт. Я использую компьютер с Windows 10 (x64) для создания своего проекта.

Я хотел сохранить тело (html) в массив, который будет вызван обратно в index.html досье. Обратный вызов работает нормально. Он был протестирован.

Вот код для файла .js

  function data( callback){
   var content = [];
   var request = require('request');

   request('https://www.google.com', function (error, response, body) {
         if(error){
              content.push('Error:', error);
         }
         if(response.statusCode !== 200){
              content.push('Invalid Status Code Returned:', response.statusCode);
         }
              content.push(body);
              callback(content);
    });


 } 
module.exports = data;
  

В html-файле я вызываю data

 var data require('./data.js')

data function(content){
   alert(content);
}
  

Если я чего-то не понимаю, пожалуйста, дайте мне совет по этому поводу.

Комментарии:

1. Ваш второй блок кода не имеет смысла и не является законным Javasscript. Также, когда вы говорите «не работает», вам нужно описать как желаемое поведение, так и наблюдаемое поведение, чтобы мы знали, чего вы ожидаете от кода, и вы могли сообщить нам, каково текущее и нежелательное поведение. В противном случае этот вопрос не по теме и неясен и будет закрыт.

2. моя цель — получить Google html в массив, а затем вызвать его в index.html досье. Я допустил ошибку с «data =»…. Если есть что-то еще, чего мне не хватает, пожалуйста, укажите. Я все еще новичок

Ответ №1:

Ваш второй блок содержимого, предполагающий, что его javascript должен быть:

 var data = require("./data.js");

data(function(content){
 alert(content);
});
  

Когда вы объявляете переменную, вы присваиваете ей значение, используя знак «=».

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

Комментарии:

1. Я допустил ошибку с «=» …… функция вызывается с параметром обратного вызова. единственное, чего я пытаюсь добиться, это получить Google html в массиве. Если я чего-то не понимаю, пожалуйста, объясните……

2. Как сказал @jfriend00, второй фрагмент кода, который вы предоставили, не является допустимым javascript. В вашем коде вы не вызываете данные и не передаете обратный вызов. Пожалуйста, убедитесь, что вы изменили свой код точно так, как указано в ответе выше.

3. Код — это JavaScript. Я вызвал его в index.html досье. первый блок кода находится в «data.js «досье. если я что-то делаю неправильно, пожалуйста, укажите. Спасибо