Я работаю над веб-приложением response + redux, и мы используем Next. js@9.3.1 для обслуживания наших веб-страниц, и мы используем маршруты динамического c api для всех наших запросов к серверу.
Я пытаюсь использовать следующий пакет в нашем приложении: https://github.com/adorableio/avatars-api-middleware, но не могу понять, как реализовать его с помощью Next. js 'Dynami c маршрутизация api. Пакет инструктирует использовать промежуточное программное обеспечение маршрутизатора, подобное этому, с сервером express:
import express from 'express';
import avatarsMiddleware from 'adorable-avatars';
const myApp = express();
myApp.use('/myAvatars', avatarsMiddleware);
, а затем предоставляет конечные точки, такие как
myserver.com/myAvatars/:id
, чтобы вернуть аватар для предоставленного идентификатора.
Я пробовал следующий код в своем индексе. js страница из страниц / api / myAvatars /, но мне не повезло:
import avatarsMiddleware from 'adorable-avatars';
var GlobalVariables = require('../../../GlobalVariables');
function runMiddleware(req, res, fn) {
return new Promise((resolve, reject) => {
fn(req, res, result => {
if (result instanceof Error) {
return reject(result)
}
return resolve(result)
})
})
}
async function handler(req, res) {
let avatars = await runMiddleware(req, res, avatarsMiddleware);
}
export default handler;
На стороне клиента я Я делаю запрос с помощью топора ios получаю запрос следующим образом:
const avatar = await axios.get(`/api/myAvatars/`, {
id: name,
size: '250px',
})
, но я получаю сообщение об ошибке на сервере:
{ Error: Cannot find module for page: /api/myAvatars/
at pageNotFoundError (/mycomputerandappdirectories/node_modules/next/dist/next-server/server/require.js:13:17)
at Object.getPagePath (/mycomputerandappdirectories/node_modules/next/dist/next-server/server/require.js:32:19)
at DevServer.getPagePath (/mycomputerandappdirectories/node_modules/next/dist/next-server/server/next-server.js:388:26)
at DevServer.handleApiRequest (/mycomputerandappdirectories/node_modules/next/dist/next-server/server/next-server.js:429:42) code: 'ENOENT' }
Возможно ли заставить этот пакет работать с next. js Dynami c api routing без создания настраиваемого сервера? Если у кого-то есть советы / статьи, которые могут помочь, я был бы очень признателен!