javascript - 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,因为我可能会忘记一些东西。
解决方案
这个例子已经过时了——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)
要注意其他差异,路由器模块是一个需要实例化的类,并且上下文作为参数传递给请求处理程序。
推荐阅读
- php - 在 Woocommerce 结帐中显示产品缩略图
- php - 405 Ajax POST 错误
- wordpress - 带有徽标和菜单的 wordpress 标题图像
- vb6 - 如何编写批处理文件来运行和执行 VB6 项目
- javascript - 嵌套订阅无限循环 - Angular / RxJS
- knapsack-problem - 如何将相同尺寸的 3d 矩形物品放入盒子中
- wordpress - Wordpress 木材显示自定义帖子类型
- c++ - 如何将 EEPROM 中的 char* 设置为 html 输入字段默认值
- c - 如何在文件中查找字符串并使用 C 在文件中紧接该搜索字符串的下一行写入新字符串
- sql - 在 SQL Server 中生成新的事务 ID