如何上菜前端配koa



我正在尝试使用Koa (v2)服务前端。最终,我想使用React。但现在,我只是试图提供一个简单的html文件。

app/index . html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <h1>Hello World</h1>
  </body>
</html>

server.js

import 'babel-polyfill';
import koa from 'koa';
import koaRouter from 'koa-router';
import serve from 'koa-static';
import mount from 'koa-mount';
const app = new koa();
const router = new router({ prefix: '/koa' });
// This route works
router.get('/', async (ctx) => {
  ctx.body = 'Hello from Koa!';
});
app.use(router.routes());
const front = new koa();
// This route doesn't work.
front.use(serve(__dirname + '/app'));
// However, this will work, so then, I'm not using koa-serve correctly?
// front.use(async (ctx) => {
//   ctx.body = "Mount this.";
// });
app.use(mount('/', front));
app.listen(3000);

那么我如何为前端服务呢?

我使用了类似的代码,它为我工作,奇怪的,几乎像你的例子,只是我没有使用async

const koa = require('koa');
const koaRouter = require('koa-router');
const mount = require('koa-mount');
const serve = require('koa-static');
const app = new koa();
const router = new koaRouter({ prefix: '/koa' });
router.get('/', function *() {
  this.body = 'Hello from Koa!';
});
app.use(router.routes());
const front = new koa();
front.use(serve(__dirname + '/app'));
app.use(mount('/', front));
app.listen(3000);

尝试使用koa-sendfile,只是为了测试一下。在

下面还有一个例子

请注意,我使用的是koa-route,而不是像你的例子

那样使用koa-router

还有一个名为app的文件夹里面包含了index。html

'use strict';
const koa = require('koa');
const router = require('koa-route');
const mount = require('koa-mount');
const sendfile = require('koa-sendfile');
const serve = require('koa-static');
const app = koa();
const ui = koa();
const api = koa();
// API Mount
function *apiCall() {
    this.body='response from api';
}
api.use(router.get('/', apiCall));
// UI Mount
// you have 2 ways:
// // 1. Using koa-sendfile
// function *serveIndex() {
//     this.body='response from ui';
//     yield sendfile(this, __dirname + '/app/index.html');
//     if (!this.status) this.throw(404);
// }
// ui.use(serveIndex);
// 2. Using koa-static
ui.use(serve('app'));
app.use(mount('/api', api));
app.use(mount('/', ui));
app.listen(3000);

相关内容

  • 没有找到相关文章

最新更新