Koa 渲染不使用模板引擎

Koa render without using template engine

我正在练习 Node.js 并决定从 Vue + Koa 开始。

经过学习Vue,我觉得真的不需要模板引擎了。只需将整个 HTML 响应到前面,并使用 Ajax 请求操作,通过 Vue.

更新视图

问题:

  1. 这个想法对吗?
  2. Koa里面有没有像context.render('xxx.html')一样的API? 或者必须自己实现读取HTML的IO操作。
  1. 这取决于,但是是的,大多数使用前端库(如 Vue 或 React)的人会将视图留给客户端,而只使用后端来处理 API 请求。

  2. 您可以使用 koa-views 获得 ctx.render 功能。

示例用法(我包含 koa-router 只是为了有一个完整的示例):

import Koa from 'koa'
import Router frmo 'koa-router'
import views from 'koa-views'

const app = new Koa()

app.use(views(path.join(__dirname, 'views'), { extension: 'pug' }))

然后在您的路由处理程序中,您可以执行以下操作:

router.get('/contacts', async ctx => {
  ctx.render('all-contacts') // Renders the `all-contacts.pug` file
})

我建议使用加载您的 HTML 文件的开发服务器,并且仅使用您的 API 服务器来处理请求。您可以考虑使用 vue-cli 来生成一个入门 vue 项目。您基本上希望在一个端口(如 3000)上启动开发服务器,在另一个端口(3001)上启动 API 服务器。开发服务器将自动加载您的 HTML 文件并监听客户端的变化。您只需要设置一个 proxy 以将所有 API 请求从您的 webpack 配置发送到 API 服务器。