heroku - 将 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
解决方案
推荐阅读
- arrays - 为什么我的枚举在 Ruby 中第一次被拒绝后停止?
- yocto - 在 Yocto 中构建应用程序时找不到共享库
- django - 测试用户是否未登录,重定向到登录页面
- dart - ConnectivityPlugin.java 使用或覆盖已弃用的 API
- sql-server - EXEC msdb.dbo.sp_send_dbmail 忽略查询
- pandas - 如何使用熊猫检查数据框中的两列是否都有值
- python - 从日期数组中删除日期
- reactjs - ReactJS Slider 轮播组件
- c# - 通过变量检查对象是否已存在
- solr - 如何从 Apache Solr 索引中完全删除一个单词?