0

Я запускаю вычислительный движок google с node.js , но я тестирую с помощью codeanywhere. Я могу запустить запрос bigquery на терминале codeanywhere и получить результаты для вывода на консоль терминала.получить результаты bigquery от node.js в браузере

но когда я пытаюсь сделать то же самое с html-страницы, я не могу получить результаты, чтобы вернуться к пользователю/браузеру.

Единственные модули узлов, которые я установил на codeanywhere, являются firebase и googleapis.

Я хочу запустить вызов bigquery на стороне сервера, потому что я хочу сохранить скрытую информацию auth; иначе бы просто запустить bigquery api из javascript.

мои test.js является:

'use strict'; 

var google = require('XXX/lib/googleapis'); 
var bigquery = google.bigquery('v2'); 
var authClient = new google.auth.JWT(
    '[email protected]', 
    'XXX.pem', 
    null, ['https://www.googleapis.com/auth/bigquery']); 

var request = { 
    projectId: 'XXX', 
    //all: true, 

    auth: authClient 
}; 

var list = bigquery.datasets.list(request, function(err, result) { 
    if (err) { 
     console.log(err); 
    } else { 
     console.log(result); 
     return result; 
    } 
}); 

и мой HTML является:

<!DOCTYPE html> 
    <html lang = "en"> 

    <head> 
    <title>Testing Server Call </title> 
    <script type = "text/javascript" src = "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script> 
    <script type = "text/javascript" > 
    $(function() { 
     $.ajax({ 
      type: 'GET', 
      url: 'test.js' 
      success: function(data) { 
       console.log('yay'); 
       console.log(data);    
      }, 
      error: function(xhr, status, error) { 
       console.log('Error: ' + error.message); 
      } 
     }); 


    }); 

</script> 
</head> 
<body> 
    hi there 

</body> 
</html> 

Я искал и тестирование за последние пару дней, и понятия не имею, что я пропал без вести. Я продолжаю получать ошибки, например: Error: require is not defined, и я не могу найти никаких учебных пособий, которые помогут мне выполнить все шаги, чтобы добиться этого. Спасибо заранее за любую помощь.

+0

Можете ли вы попытаться сохранить требование, прежде чем «использовать строгое»? –

+0

спасибо. попробовал это, все равно получить ошибку «require is not defined» – jm93

+0

@ jm93 вы получаете требуемую ошибку в браузере или консоли узла? – owaishanif786

ответ

0
'use strict'; 
var http = require('http'); 
var google = require('XXX/lib/googleapis'); 
var bigquery = google.bigquery('v2'); 
var authClient = new google.auth.JWT(
    '[email protected]', 
    'XXX.pem', 
    null, ['https://www.googleapis.com/auth/bigquery']); 

var request = { 
    projectId: 'XXX', 
    //all: true, 

    auth: authClient 
}; 



var server = http.createServer(function(req, res){ 
    var list = bigquery.datasets.list(request, function(err, result) { 
     if (err) { 
      console.log(err); 
     } else { 
      console.log(result); 
      response.end(result); 
     } 
    }); 
}); 
server.listen(8080, function(){}); 

В интерфейсе вы должны маршрут, где вы будете делать запрос

<!DOCTYPE html> 
    <html lang = "en"> 

    <head> 
    <title>Testing Server Call </title> 
    <script type = "text/javascript" src = "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script> 
    <script type = "text/javascript" > 
    $(function() { 
     $.ajax({ 
      type: 'GET', 
      url: 'http://localhost:8080/' 
      success: function(data) { 
       console.log('yay'); 
       console.log(data);    
      }, 
      error: function(xhr, status, error) { 
       console.log('Error: ' + error.message); 
      } 
     }); 


    }); 

</script> 
</head> 
<body> 
    hi there 

</body> 
</html> 

После этого нужно просто запустить в командной строке node test.js

+0

Благодарим вас за помощь! Я в настоящее время тестирую. я забыл упомянуть, что моя производственная сторона - это вычислительный движок Google, но я тестирую, используя рабочую область codeanywhere. надеюсь, что не имеет значения, – jm93

+0

, к сожалению, все еще получает «Ошибка: require not defined» в консоли браузера, чтобы быть конкретным. и если я использую http: // localhost: 8080/в качестве маршрута, я получаю «соединение отказано» - это использование кода, где моя тестовая среда – jm93

+0

благодарит вас, попробовал отредактированный код из ответа. такая же ошибка. думаю, это невозможно. Спасибо за помощь. Я должен заплатить кому-то, потому что stackoverflow не предназначен для помощи, в которой я нуждаюсь. – jm93

0

Здесь вы используете test.js в качестве URL указать, какие загружает js на стороне клиента. Вы не можете использовать require на стороне клиента, и это также ошибка. Вы должны создать маршрут и дать его там.

+0

вот что меня смущает. test.js находится на сервере, так почему он «загружается» на клиенте? test.js отлично работает в терминале, но получение данных в браузере - это то, что меня убивает. не знаю, что мне не хватает. – jm93

+0

Ajax-вызов, который вы написали, эквивалентен jQuery.getScript(); Он предназначен для загрузки сценария на стороне клиента. –

+0

Что может быть эквивалентным синтаксисом, который мог бы работать? я просто хочу получить результат bigquery на стороне сервера и отправить в браузер. – jm93

Смежные вопросы