koa利用koa-views通過路由返回html頁面


前面一篇博客介紹了koa借助koa-static依賴可以實現以靜態資源的形式加載html,但是沒有路由功能,一般而言,前后端分離之后,路由控制是由前端控制,也有一些不分離的項目,需要后端通過url路徑請求直接返回一個html,這個頁面是一個動態頁面,如果使用ejs模板,甚至可以在渲染加載頁面的時候,增加頁面參數。

    koa-views可以實現這個功能,同時,配合koa-router可以實現服務端路由控制來跳轉頁面。

const Koa = require("koa")
const app = module.exports = new Koa()
const router = require("@koa/router")()
const path = require("path")
const views = require("koa-views")
app.use(views(path.join(__dirname,"views/"),{extension:'html'}))
router.get("/",index)
.get("/link",linkpage)

async function index(ctx){
await ctx.render("index")
}

async function linkpage(ctx){
await ctx.render("link")
}

app.use(router.routes())

if(!module.parent){
app.listen(3000,function(){
console.log("koa server running at port 3000");
})
}

    這里模板沒有使用其他ejs之類,就是普通的html。

    如果不加入koa-views依賴和配置,ctx對象沒有render方法。

    要看到效果,還需要在項目目錄views下新建index.html,link.html,這兩個頁面很簡單:

    index.html

<!doctype html>
<html>
<head>
<title>koa</title>
<meta charset="UTF-8"/>
</head>
<body>
<h1>hello,koa.</h1>
<a href="/link">helloworld</a>
</body>
</html>
    link.html

<!doctype html>
<html>
<head>
<title>koa</title>
<meta charset="UTF-8"/>
</head>
<body>
<h1>hello,world.</h1>
<a href="/">home</a>
</body>
</html>
    這種通過服務端控制路由的方式,就回到了早期jsp開發的模式,頁面和服務端代碼在一起,沒有分離,路由跳轉交給服務端控制,頁面和服務端一起部署。在如今的前后端分離的浪潮下,這種方式已經越來越不受青睞。簡單的項目可以玩玩。 
————————————————
版權聲明:本文為CSDN博主「luffy5459」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/feinifi/article/details/116234374


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM