首页 > 解决方案 > 将 Koa Routes 与 Heroku 一起使用会返回 404 错误

问题描述

我正在构建我的第一个 Shopify 公共应用程序并使用他们的 Next.js 和 React 示例开始。我需要创建一个 API,但无法使用 Next.js 对其进行路由,因此我添加了 Koa 和 Koa-Routes 来映射它。

它在本地运行良好,我可以使用 API 从我的数据库中发布和获取信息。当我在 Heroku 上部署它时,这些 Koa 路由不再工作并返回 404 错误。

server.js(仅相关位)

const Koa = require('koa');
const Router = require('koa-router');
var bodyParser = require('koa-bodyparser');
const next = require('next');
const routes = require('./routes')

const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });

app.prepare().then(() => {
    const server = new Koa();
    const router = new Router();
    server.use(bodyParser());
    server.use(session(server));
    server.keys = [SHOPIFY_API_SECRET_KEY];

    require('./routes/api')(router);

    ...

./routes/api

const SettingsControllers = require('../controller/settings');

module.exports = function(router){

    router.get('/api/settings/:shop', SettingsControllers.find);
    router.put('/api/settings', SettingsControllers.save);

    return router

}

这是我在 API 调用中收到的消息

heroku[router]: at=info method=GET path="/api/settings/13msdev.myshopify.com" host=app.website.com request_id=12345 fwd="12.12.12.12.12" dyno=web.1 connect=0ms service=3ms status=404 bytes=2020 protocol=https

标签: herokunext.jskoa

解决方案


推荐阅读