首页 > 解决方案 > koa 中的 koa-router 路由错误

问题描述

我正在通过基本练习学习 Koa,但我无法使用从该页面获得的代码实现简单的路由,这就是我所做的:

var koa = require('koa');
var router = require('koa-router'); //require it
var app = new koa();
var ro = router();
//and we'll set up 2 routes, for our index and about me pages
ro.get('/hello', getMessage);

function *getMessage() {
    this.body = "Hello world!";
 };
app.use(ro.routes());
app.listen(8008);
console.log('Koa listening on port 8008');

我没有收到任何特定错误,因为应用程序使用命令运行node index.js,但我可以在我路由的页面中看到任何打印。

我的文件夹 myproyectoks 中只有 1 个文件,它是 index.js,这就是我正在工作的文件。

您需要的任何信息请问我:D,因为我可能会忘记一些东西。

标签: javascriptnode.jsroutesframeworkskoa

解决方案


这个例子已经过时了——Koa 中间件是基于 Promise 的,并且生成器函数将不再直接工作。路由器文档建议采用以下形式:

const Koa = require('koa')
const Router = require('@koa/router')

const router = new Router()
router.get(
    '/hello', 
    ctx => ctx.body = 'Hello world!'
)

const app = new Koa()
app.use(router.routes())

app.listen(8008)

要注意其他差异,路由器模块是一个需要实例化的类,并且上下文作为参数传递给请求处理程序。


推荐阅读