概念
Koa 是下一代的 Node.js 的 Web 框架。
由 Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础。
文档地址:koa.bootcss.com/
使用步骤
第一、 初识Koa,新建目录server,打开cmd终端,输入以下命令。
npm init -y
npm install koa
第二、 在server目录下创建app.js文件。
示例代码:
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'Hello World';
//ctx; // 这是 Context 对象
//ctx.request; // 这是 koa Request 请求对象
//ctx.response; // 这是 koa Response 响应对象
});
app.listen(3000);
第三、 设置静态资源。
npm install koa-static
示例代码:
const Koa = require('koa');
const static = require('koa-static');
const app = new Koa(); // 设置静态资源目录
app.use(static(__dirname + '/public')); // 其他中间件或路由
app.listen(3000);
第四、 Koa框架中使用路由 在Node.js中,使用Koa框架创建路由可以通过安装并使用koa-router中间件来实现。
npm install koa-router
示例代码:
const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router(); // 定义路由 router.get('/', async (ctx) => { ctx.body = 'Hello World!'; });
//访问地址:http://localhost:3000/hello/10010
router.get('/hello/:id', async (ctx) => {
ctx.body = `Hello, ${ctx.params.id}!`;
});
// 使用路由中间件
app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000);
第五、 POST 请求处理参数。
npm install koa koa-bodyparser
示例代码:
const Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser'); // 初始化Koa实例
const app = new Koa();
const router = new Router(); // 使用bodyParser中间件解析请求体 app.use(bodyParser()); // 创建POST路由
router.post('/', async (ctx) => {
// 获取POST请求体中的数据
const data = ctx.request.body; // 设置响应内容类型为JSON ctx.set('Content-Type', 'application/json'); // 设置响应体为获取到的数据,并转换为JSON格式 ctx.body = JSON.stringify(data)}); // 将路由中间件应用到Koa应用程序 app.use(router.routes());
app.use(router.allowedMethods()); // 监听3000端口
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
第六、 设置CORS(资源跨域共享)。
npm install koa2-cors
示例代码:
const Koa = require('koa');
const cors = require('koa2-cors');
const app = new Koa(); // 使用cors中间件
app.use(cors({
origin: function(ctx) {
return '*'; // 允许所有域名
},
exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'], maxAge: 5, // 允许的最大时间
credentials: true,
allowMethods: ['GET', 'POST', 'DELETE'],
allowHeaders: ['Content-Type', 'Authorization', 'Accept'],
})); // ... 其他中间件和路由
app.listen(3000);
第七、 怎么渲染视图(模板),新建views目录,创建index.ejs文件(ejs文件中编写html代码即可)。
npm install koa-views consolidate ejs
示例代码:
const Koa = require('koa');
const views = require('koa-views');
const consolidate = require('consolidate');
const app = new Koa(); // 配置视图引擎
app.use(views('views', {
extension: 'ejs',
map: { html: 'ejs' },
engineSource: consolidate
})); // 处理请求并渲染HTML
app.use(async (ctx) => {
await ctx.render('index', { title: 'Hello Koa', message: 'Hello World!' }); });
app.listen(3000);
第九、 连接moogodb,前提是电脑安装了monogodb软件服务。
npm install mongoose
示例代码:
const Koa = require('koa');
const mongoose = require('mongoose');
// 创建Koa应用实例
const app = new Koa();
// 连接到MongoDB数据库 mongoose.connect('mongodb://localhost:27017/mydatabase',
{ useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('MongoDB Connected'))
.catch(err => console.log(err)); // 其他中间件和路由配置... // 启动服务器 app.listen(3000, () => {
console.log('Server running on port 3000');
});