如何使用带有Node.js的$ .getJSON获取JSON数据

时间:2018-05-09 19:57:35

标签: json node.js drupal

我是Node.js的新手。我已经有一个使用API​​的前端javascript脚本,并获取如下的天气数据:

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 :(得分:1)

$.getJSON是jQuery的功能,可用于发出http次请求。

你现在在后端。所以事情在这里会有所不同。这不是您从后端发出请求的方式,而是应该考虑使用其中一个本机模块来生成httphttp模块的请求,并将其用作

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

或者,如果您想使用getJson之类的内容,可以使用get-json库{/ 3}}

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

当然,您必须先使用npm install get-json

安装它

然后在您的项目中使用var getJSON = require('get-json')