Кажется, у меня проблема только с одним промежуточным программным обеспечением, способным работать в Koa.js
import "@babel/polyfill";
import dotenv from "dotenv";
import "isomorphic-fetch";
import graphQLProxy, { ApiVersion } from "@shopify/koa-shopify-graphql-proxy";
import Koa from "koa";
import next from "next";
import session from "koa-session";
import * as handlers from "./handlers/index";
import { verifyRequest } from "@shopify/koa-shopify-auth";
dotenv.config();
import Middleware from './middleware';
import router from './router';
const middleware = new Middleware();
////// Application Config //////
let port;
if (process.env.PORT) {
port = process.env.PORT;
} else port = 8081;
const dev = process.env.NODE_ENV !== "production";
const app = next({dev});
const handleRequests = app.getRequestHandler();
const { SHOPIFY_API_SECRET } = process.env;
////// Application Instantiation //////
app
.prepare().then(() => {
const server = new Koa();
////// Middleware //////
// loggers
server.use(async (ctx: any, next: any) => {
console.log(ctx, `=====ctx=====`)
await next();
});
server.use(async (ctx: any, next: any) => {
console.log(ctx.request, `=====ctx.request=====`) // doesn't log
await next();
});
// shopify
server.use(session(server));
server.keys = [SHOPIFY_API_SECRET] as string[];
server.use(middleware.instantiateShopify());
server.use(
graphQLProxy({version: (ApiVersion as unknown as any).October19}));
server.use(verifyRequest());
server.use((ctx: any) => handleRequests(ctx.req, ctx.res));
////// Routing //////
server.use(router.allowedMethods());
server.use(router.routes());
server.listen(port, () => {
console.log(`> Ready on http://localhost:${port}`);
});
});
В приведенном выше коде 2-й оператор журнала не выполняется. Также остальная часть приложения не работает, и я вижу "Not Found"
в браузере.
Пробовал
Удаление промежуточного программного обеспечения регистрации позволяет приложению по крайней мере отображаться в браузере.
Изменение порядка промежуточного программного обеспечения для ведения журнала позволяет запускать только первое.
Удаление await next();
не устраняет проблему.
Похоже, чтобыть какие-либо ошибки консоли / терминала.
Кто-нибудь знает, что еще может быть причиной этой проблемы?