📅  最后修改于: 2020-10-23 07:43:34             🧑  作者: Mango
Web框架在不同的路径上提供HTML页面,脚本,图像等资源。 Koa在核心模块中不支持路由。我们需要使用Koa-router模块在Koa中轻松创建路由。使用以下命令安装此模块。
npm install --save koa-router
现在我们已经安装了Koa-router,让我们看一个简单的GET路由示例。
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router(); //Instantiate the router
_.get('/hello', getMessage); // Define routes
function *getMessage() {
this.body = "Hello world!";
};
app.use(_.routes()); //Use the routes defined using the router
app.listen(3000);
如果我们运行应用程序并转到localhost:3000 / hello,则服务器会在路由“ / hello”处收到一个get请求。我们的Koa应用程序执行此路由附带的回调函数,并发送“ Hello World!”。作为回应。
我们也可以在同一条路线上使用多种不同的方法。例如,
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router(); //Instantiate the router
_.get('/hello', getMessage);
_.post('/hello', postMessage);
function *getMessage() {
this.body = "Hello world!";
};
function *postMessage() {
this.body = "You just called the post method at '/hello'!\n";
};
app.use(_.routes()); //Use the routes defined using the router
app.listen(3000);
要测试此请求,请打开您的终端并使用cURL执行以下请求
curl -X POST "https://localhost:3000/hello"
express提供了一种特殊的方法all ,以使用同一函数在特定的路由上处理所有类型的http方法。要使用此方法,请尝试以下操作-
_.all('/test', allMessage);
function *allMessage(){
this.body = "All HTTP calls regardless of the verb will get this response";
};