Используя Next js, я борюсь за выборку данных из обработчика 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 и, основываясь на этом и на данных из Mon go, создает полезную нагрузку.
Грязное исправление работает, как показано ниже в 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})
}
Чего мне не хватает?