Загрузка внешних библиотек / скриптов JavaScript из JavaScript - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь создать консольное приложение, используя JavaScript / Node.js, следующий скрипт.js выдает ReferenceError: $ is not defined при компиляции:

//user input from command line
var readline = require('readline');

var rl = readline.createInterface({
 input: process.stdin,
 output: process.stdout
});

rl.question("Would you like to see which Car Types are available? Please type yes/no ", function(answer) {
// if yes, print search results to console in descending price order 
if (answer === 'yes'){

var results= "";
$.getJSON("https://techtest.rideways.com/dave/?pickup=3.410632,-2.157533&dropoff=3.410632,-2.157533", function(data){
results = JSON.parse(data);
}); 

console.log("The following Car Types are available:", results.options['car_type'], " - ", results.options['price']);
}else{
console.log("No worries, have a nice day!");
}
rl.close();
});

Как показано в этом посте; ReferenceError: $ не определено Я надеюсь, что это потому, что мне не хватает библиотек JS.

Есть ли способ вызвать библиотеки JS внутри моего script.js без создания отдельного файла HTML?Поскольку я не создаю интерфейсное веб-приложение, поэтому не вижу смысла в создании файла HTML?

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

$ выглядит так, как будто это была копия / вставка из некоторого кода jQuery.Вместо jQuery axios выполнит работу в Node и в браузере.axios - это библиотека http-запросов с обещаниями.Сначала добавьте пакет в проект: $ npm i -s axios.

Пример запроса get: ( запустите его на repl.it )

const axios = require('axios');

main();

function main() {
  return exampleRequest().then(renderResponseData)
}

function exampleRequest() {
  const url = 'https://techtest.rideways.com/dave/?pickup=3.410632,-2.157533&dropoff=3.410632,-2.157533';

  return axios.get(url)
}

function renderResponseData(response) {
  console.log(response.data)
}
0 голосов
/ 07 октября 2018

В коде Node.js вам обычно не нужно использовать jQuery, но если вы хотите, он доступен как модуль npm.Вы бы установили его (npm install jquery), а затем require это точно так же, как вы require d readline в своем коде.Полная информация (поскольку jQuery ожидает среду DOM) в этом ответе .

Но , здесь нет необходимости в jQuery.Используйте http.request или https.request или аналогичные.Я сомневаюсь, что $.getJSON будет работать даже в Node.js.

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