Я новичок в Hapi и хочу использовать API при запуске сервера. При запуске я получаю сообщение об ошибке: метод обработчика не вернул значение, обещание или выдал ошибку.
Я наткнулся на этот пост и пытался смоделировать свой код после ответа, предоставленного здесь, но он не работает, хотя я возвращаю обещание из выборки.
Вот мой server.js.
"use strict";
var Hapi = require("@hapi/hapi");
var Request = require("request");
const Inert = require("@hapi/inert");
const Vision = require("@hapi/vision");
//Init server
const init = async () => {
const server = Hapi.server({
port: 3000,
host: "localhost",
routes: {
cors: true,
},
});
await server.register(Vision);
await server.register(Inert);
// await server.register(require("vision"));
server.route(require("./routes/getapis").getapis);
await server.start();
console.log(`Server is running on ${server.info.uri}`);
};
process.on("unhandledRejection", (err) => {
console.log(err);
process.exit(1);
});
init();
Это мой getApis.js
const fetch = require("node-fetch");
const spendingApiUrl = `https://opendata.maryland.gov/resource/gja3-vy5r.json?$select=vendor_zip,sum(amount)&$where=vendor_zip between '20601' and '21930'&$group=vendor_zip&$order=sum_amount DESC`;
const numberOfTopZips = 3;
let results = [];
let marylandData = [];
exports.getApis = {
method: "GET",
path: "/getapis",
handler: (request, h) => {
return fetch(spendingApiUrl)
.then((response) => response.json())
.then((data) => {
marylandData = data;
console.log(marylandData);
//rateLimitedRequests(topZips(marylandData, numberOfTopZips));
})
.catch((err) => console.log(err));
},
};