[英]Node.js - javascript calling functions from javascript file
我正在開發一個 Express/NodeJs 項目。 我是 Express/NodeJs 的新手,我正在嘗試將 airportQuery.js 導入 DistanceFormula.js。 我正在嘗試從 DistanceFormula.js 直接導入 airportQuery.js。 我試圖調用 getAirports 並將答案返回給 DistanceFormula.js。 我不確定我是否必須使用節點路由,或者我是否正確執行。
文件結構:文件結構
距離公式.JS
import {getAirports} from "./api/airportQuery";
console.log(getAirports('3c675a'));
機場查詢.js
async function getAirports(planeIcao) {
let airport = {
arrival: "",
destination: ""
};
const airport_url = 'https://opensky-network.org/api/flights/aircraft?icao24=' + planeIcao + '&begin=1517184000&end=1517270400';
const response = await fetch(airport_url);
const data = await response.json();
console.log(data[0]);
console.log(data[0].estArrivalAirport);
airport.arrival = data[0].estArrivalAirport;
console.log(data[0].estDepartureAirport);
airport.destination = data[0].estDepartureAirport;
return airport
}
const fetch = require("node-fetch");
export {getAirports};
錯誤:未捕獲的語法錯誤:無法在模塊外使用導入語句
要使用 node.js 中的模塊,您必須執行以下操作:
node --experimental-modules
有關更多信息,請參閱相關文檔。
這不僅適用於您import
的頂級文件,而且如果它也使用import
,那么上述相同的規則也必須適用於它。
請注意,一旦您的模塊正確加載,您就會遇到這行代碼的問題,因為getAirports()
返回 promise,而不是一個值。 所有async
函數總是返回 promise。 function 中的return
值將成為返回的 promise 的解析值。 這就是async
函數的工作方式。 所以,改變這個:
console.log(getAirports('3c675a'));
對此:
getAirports('3c675a').then(result=> {
console.log(result);
}).catch(err => {
console.log(err);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.