我正在构建我的第一个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