Как вы получаете данные JSON, используя $ .getJSON с Node.js - PullRequest
0 голосов
/ 09 мая 2018

Я новичок в Node.js. У меня уже есть скрипт javascript внешнего интерфейса, который использует API и получает данные о погоде следующим образом:

function getTextWeatherUsingStation(theStation){

 theURL = 'https://api.weather.gov/stations/' + theStation + '/observations/current';

    //    return new Promise((resolve, reject) => {

            $.getJSON(theURL,function(data){
            var myJSON = JSON.stringify(data)

Я читал, что вы не можете просто использовать библиотеку как есть. Я преобразовал его в дружественный файл Node.js, обернув его в

module.exports = { 

и изменение функции на:

getTextWeatherUsingStation: function(theStation){

У него были проблемы с обещанием, поэтому я просто прокомментировал это, как вы можете видеть. Я получал ошибки в строке $ .getJSON и подумал, что это потому, что я не включил jQuery, поэтому я использовал npm для его установки.

Я все еще получаю это и не могу понять, почему:

....\drupal-8.4.5\stationFunctionsNode.js:34
            $.getJSON(theURL,function(data){
            ^

ReferenceError: $ is not defined
    at Object.getTextWeatherUsingStation (C:\Users\edwin.brown\Sites\devdesktop\drupal-8.4.5\stationFunctionsNode.js:34:13)
    at Object.<anonymous> (C:\Users\edwin.brown\Sites\devdesktop\drupal-8.4.5\nodeTestWData.js:8:18)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

1 Ответ

0 голосов
/ 09 мая 2018

$.getJSON - это функция jQuery для front для выполнения http запросов.

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

 http.request(Options, function(res) { ...

Или, если вы хотите использовать что-то вроде getJson, здесь есть get-json библиотека, которую вы можете использовать как

getJSON('URL', function(error, response){..

Конечно, сначала вам нужно будет установить его с npm install get-json

затем используйте в своем проекте как var getJSON = require('get-json')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...