Далее. js Dynami c api routing - как использовать промежуточное ПО маршрутизатора express без специального сервера? - PullRequest
1 голос
/ 27 мая 2020

Я работаю над веб-приложением 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 без создания настраиваемого сервера? Если у кого-то есть советы / статьи, которые могут помочь, я был бы очень признателен!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...