半小时搞定Node+Koa+Mongodb

266 阅读2分钟

概念

Koa 是下一代的 Node.js 的 Web 框架。 由 Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础。 文档地址:koa.bootcss.com/ image.png

使用步骤

第一、 初识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'); 
});