Node框架 【Koa】之 【静态资源管理、模板引擎、连接数据库】

简介: Node框架 【Koa】之 【静态资源管理、模板引擎、连接数据库】

🌟前言

哈喽小伙伴们,新的专栏 Node 已开启;这个专栏里边会收录一些Node的基础知识和项目实战;今天我们继续带大家了解Node的框架 Koa ;让我们一起来看看吧🤘


🌟静态资源托管

为了提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件,请使用 koa-static包。


🌟安装

安装静态文件模块:

npm i koa-static -S

🌟使用

const static_ = require('koa-static')
app.use(static_(
    path.join(__dirname, './static')
))

这样的一两句代码,就完成了一个静态服务器的搭建,static 目录下的文件,就能支持通过路径访问。


🌟Koa视图

koa-views 是一个视图管理模块,它的灵活度很高,支持很多的模版引擎,这里我们给它配置的引擎是 ejs。


🌟EJS模板引擎使用

关于EJS模板引擎详细使用,请查看文档 架构模式 > MVC架构模式 > EJS模板引擎


🌟安装


npm i koa-views
npm i ejs

🌟配置

views(root[, opts])

参数描述:


root: 模板所在的位置。可以是相对路径也可以是绝对路径,所有渲染模板都是相对于此路径的

opts (可选参数)

opts.autoRender: 是否使用 ctx.body 接收渲染的模板字符串。默认为true。

opts.extension: 模板文件的默认扩展名,默认为html

opts.map: 将指定模板文件扩展名映射到模板引擎

配置1:使用默认后缀,此时的模板文件后缀名为.ejs

const views = require('koa-views')
const path = require('path')
// 配置视图
app.use(views(path.join(__dirname, './views'), {
    extension: 'ejs'
}))

配置2:设置模板引擎后缀为html,此时的模板文件后缀名为.html

// 配置视图
app.use(views(path.join(__dirname, './views'), {
    map: {html:'ejs'}
}))

🌟使用

🌟模板渲染方法

ctx.render(viewPath, locals ):Promise

参数描述:

viewPath:一个字符串,view是要渲染的模板文件的文件路径。

locals:一个对象,其属性定义视图的局部变量。

🌟使用案例

我们新建一个 views 目录,这里面存放我们的视图文件,在新建一个 index.ejs。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>ejs</title>
</head>
<body>
<%=message%> <!-- ejs 的模版语法,读取变量 message | 是从 render 传递过来 -->
</body>
</html>

app.js

app.use(async (ctx, next) => {
  await ctx.render('index', {message: 'index'}) // render 渲染方法,这里加载到 views/index.ejs 文件 | 第二参数是传参到模版
  await next()
})

🌟数据库

mysql2是一个高性能的MySQL驱动程序。

安装:

npm install --save mysql2

使用:

const http = require('http');
const mysql = require('mysql2/promise');
const Koa = require('koa');
// create the pool
const pool = mysql.createPool({
    connectionLimit:10, //连接数,默认10个
    host:'localhost',
    user:'root',
    password:'',
    database:'数据 库名'
    port:3306   //默认服务器端口
});
let App = new Koa();
App.listen(8080);
App.context.db = pool; //可以在任意模块中使用 ctx.db操作数据库
App.use(async (ctx,next)=>{
  try{
    //可以使用async await的书写形式
    let data = await ctx.db.query('SELECT * FROM 表名');
    next();
  }catch(e){
    console.log('error',e);
  }
});

关于mysql2的使用,请参考 第三方包>mysql

🌟写在最后

更多Node知识以及API请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!

目录
相关文章
|
存储 缓存 JavaScript
node 框架
Node 框架以其独特的优势和广泛的应用场景,成为了现代 Web 开发中不可或缺的一部分。掌握 Node 框架的开发技能,对于开发者来说具有重要的意义。
757 156
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端框架
【10月更文挑战第34天】在数字化时代,后端开发如同一座桥梁,连接着用户界面与数据处理的两端。本文将通过Node.js这一轻量级、高效的平台,带领读者领略后端框架的魅力。我们将从基础概念出发,逐步深入到实战应用,最后探讨如何通过代码示例来巩固学习成果,使读者能够在理论与实践之间架起自己的桥梁。
|
Web App开发 缓存 监控
如何解决Node框架中内存管理的挑战?
解决 Node 框架中内存管理的挑战需要综合运用多种方法,并且需要在开发过程中保持谨慎和细心,不断优化和改进代码。同时,定期进行内存管理的检查和维护也是非常重要的。
524 160
|
安全 前端开发 JavaScript
Node框架的优缺点
Node 框架的优点使其在现代 Web 开发中具有重要地位,但同时也需要开发者在使用过程中注意其缺点,合理选择和应用,以充分发挥其优势,避免潜在问题的出现。随着技术的不断发展和完善,Node 框架也在不断改进和优化,以更好地适应各种应用需求。
787 155
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
1289 155
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
JavaScript 中间件 API
Node.js进阶:Koa框架下的RESTful API设计与实现
【10月更文挑战第28天】本文介绍了如何在Koa框架下设计与实现RESTful API。首先概述了Koa框架的特点,接着讲解了RESTful API的设计原则,包括无状态和统一接口。最后,通过一个简单的博客系统示例,详细展示了如何使用Koa和koa-router实现常见的CRUD操作,包括获取、创建、更新和删除文章。
433 4
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的融合之道
【10月更文挑战第31天】在追求快速、灵活和高效的后端开发领域,Node.js与Express框架的结合如同咖啡遇见了奶油——完美融合。本文将带你探索这一组合如何让后端服务搭建变得既轻松又充满乐趣,同时确保你的应用能够以光速运行。
465 0

热门文章

最新文章