我是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
答案 0 :(得分:1)
$.getJSON
是jQuery的功能,可用于发出http
次请求。
你现在在后端。所以事情在这里会有所不同。这不是您从后端发出请求的方式,而是应该考虑使用其中一个本机模块来生成http
个http
模块的请求,并将其用作
http.request(Options, function(res) { ...
或者,如果您想使用getJson
之类的内容,可以使用get-json
库{/ 3}}
getJSON('URL', function(error, response){..
当然,您必须先使用npm install get-json
然后在您的项目中使用var getJSON = require('get-json')