我只有基本的JS知识(主要是jQuery),因此这可能是一个非常简单的知识。 并确实意识到性能可能不是最好的解决方案,但是目前这仅仅是概念证明。
我有这个简单的Koa应用。我要做的就是在访问/ callapi路由时调用外部API(Airtable),并将来自API响应的一些数据添加到ctx.body。
但是,转到http://localhost:3000/callapi时,我得到404 Not Found 我知道这可能是因为API调用是异步的,所以Node.js / Koa不必等待它完成并继续执行,但是没有代码在其他地方设置响应主体,因此结果为404。 >
我该如何实现? 很高兴在需要时使用其他路由中间件或其他中间件。
我相信Koa接受async / await的Promises是一种新的解决方法,因此,如果我能以某种方式添加/包装它,那将是我猜中最好的。
const KoaRoute = require('koa-route');
const Koa = require('koa');
const app = new Koa();
var Airtable = require('airtable');
var base = new Airtable({apiKey: 'keyI6rZxwsXXXXXXX'}).base('appXXXXXX');
app.use(KoaRoute.get('/callapi',async function (ctx) {
await base('Couples').find('reclnxjiMeSljrzP0',function(err,record) {
console.log('Retrieved',record.id);
ctx.body = "Record ID from API: " + record.id;
});
}));
app.listen(3000);
console.log('listening on port 3000');