Koa:koa-route 和 koa-mount 有什么区别。我应该什么时候使用它们?
Koa : what is the difference between koa-route and koa-mount. When should I use each?
我正在尝试使用 Koa.js,并检查了以下用于路由请求的模块:
1.koa路线
2. koa-mount
当我在 google 中检查他们的 github page/tutorials 时,这些示例看起来几乎相似,只有细微差别。
对于 koa 路由:
var route = require('koa-route');
app.use(route.get('/', index));
//functions to handle the request
function* index(){
this.body = "this should be home page!";
}
对于koa-mount:
//syntax to add the route
var mount = require('koa-mount');
var a = koa();
app.use(mount('/hello', a));
//functions to handle the request
a.use(function *(next){
yield next;
this.body = 'Hello';
});
在我看来唯一的区别是 mount 需要一个中间件来处理请求,而 route 需要一个生成器来处理请求。
我很困惑什么时候使用什么以及什么时候两者都使用(在一些教程中看到了)?
Koa-mount 的目的是将一个应用程序安装到另一个应用程序中。例如,您可以创建独立的博客应用程序并将其安装到另一个应用程序。您也可以安装其他人创建的应用程序。
koa-mount - 它会将不同的 koa 应用程序挂载到您给定的路线中。
const mount = require('koa-mount');
const Koa = require('koa');
// hello
const Hello = new Koa();
Hello.use(async function (ctx, next){
await next();
ctx.body = 'Hello';
});
// world
const World = new Koa();
World.use(async function (ctx, next){
await next();
ctx.body = 'World';
});
// app
const app = new Koa();
app.use(mount('/hello', Hello));
app.use(mount('/world', World));
app.listen(3000);
console.log('listening on port 3000');
上面的例子有三个不同的koa应用程序Hello,World和app。 app:3000/hello 路由挂载koa 应用Hello 和app:3000/world 路由挂载koa 应用World。 Hello 和 World 是 2 个不同的独立 koa 应用程序,它们已安装到 app 应用程序。
Koa-route 不适用于多个 koa 应用程序。它只会处理一个应用程序。所以你好和世界应该是应用程序中的 class/method。
const route = require('koa-route');
const Koa = require('koa');
const Hello = async (ctx, next) => {
await next();
ctx.body = "Hello"
}
const World = async (ctx, next) => {
await next();
ctx.body = "World"
}
// app
const app = new Koa();
app.use(mount('/hello', Hello));
app.use(mount('/world', World));
app.listen(3000);
console.log('listening on port 3000');
koa-route 可以处理中间件的另一件事,其中 koa-mount 用作中间件。
我正在尝试使用 Koa.js,并检查了以下用于路由请求的模块: 1.koa路线 2. koa-mount
当我在 google 中检查他们的 github page/tutorials 时,这些示例看起来几乎相似,只有细微差别。
对于 koa 路由:
var route = require('koa-route'); app.use(route.get('/', index)); //functions to handle the request function* index(){ this.body = "this should be home page!"; }
对于koa-mount:
//syntax to add the route var mount = require('koa-mount'); var a = koa(); app.use(mount('/hello', a)); //functions to handle the request a.use(function *(next){ yield next; this.body = 'Hello'; });
在我看来唯一的区别是 mount 需要一个中间件来处理请求,而 route 需要一个生成器来处理请求。
我很困惑什么时候使用什么以及什么时候两者都使用(在一些教程中看到了)?
Koa-mount 的目的是将一个应用程序安装到另一个应用程序中。例如,您可以创建独立的博客应用程序并将其安装到另一个应用程序。您也可以安装其他人创建的应用程序。
koa-mount - 它会将不同的 koa 应用程序挂载到您给定的路线中。
const mount = require('koa-mount');
const Koa = require('koa');
// hello
const Hello = new Koa();
Hello.use(async function (ctx, next){
await next();
ctx.body = 'Hello';
});
// world
const World = new Koa();
World.use(async function (ctx, next){
await next();
ctx.body = 'World';
});
// app
const app = new Koa();
app.use(mount('/hello', Hello));
app.use(mount('/world', World));
app.listen(3000);
console.log('listening on port 3000');
上面的例子有三个不同的koa应用程序Hello,World和app。 app:3000/hello 路由挂载koa 应用Hello 和app:3000/world 路由挂载koa 应用World。 Hello 和 World 是 2 个不同的独立 koa 应用程序,它们已安装到 app 应用程序。
Koa-route 不适用于多个 koa 应用程序。它只会处理一个应用程序。所以你好和世界应该是应用程序中的 class/method。
const route = require('koa-route');
const Koa = require('koa');
const Hello = async (ctx, next) => {
await next();
ctx.body = "Hello"
}
const World = async (ctx, next) => {
await next();
ctx.body = "World"
}
// app
const app = new Koa();
app.use(mount('/hello', Hello));
app.use(mount('/world', World));
app.listen(3000);
console.log('listening on port 3000');
koa-route 可以处理中间件的另一件事,其中 koa-mount 用作中间件。