【发布时间】:2020-04-14 13:29:27
【问题描述】:
使用 Nextjs,我正在努力从另一个 API 处理程序中的 API 处理程序获取数据。
/api/batch.js 处理程序从 MongoDB 检索一些数据:
import middleware from '../../libs/mongodb';
import nextConnect from 'next-connect';
const handler = nextConnect();
handler.use(middleware);
handler.get(async (req, res) => {
const {batch_uuid} = req.query
const batch_stats = await req.db.collection('stats').find({
'batch.uuid': uuid
}).toArray()
res.json(batch_stats)
})
export default (req, res) => handler.apply(req, res)
/api/stats.js 处理程序从 MySQL 检索一些数据,并基于该数据和来自 Mongo 的数据构建有效负载。
在stats.js 中的脏修复工作如下:
const response = await fetch('http://localhost:3000/api/batch?uuid=1234')
const data = await response.json()
// use data and build another payload
但是,这需要进行 http 调用,并且对于内部端点这样做没有意义。
我尝试直接调用batch 处理程序,但得到undefined
const getBatch = require('./batch');
module.exports = async (req, res) => {
const accounts = await getBatch()
res.status(200).json({accounts})
}
我错过了什么?
【问题讨论】: