node.js - 使用 Express 4 渲染原始 HTML View

标签 node.js express

我的目标是在我的 Express 应用程序中从 Jade 迁移回原始 HTML,但我想确保我不会失去模板引擎的任何优势,因此我需要一个解决方案:

  • 将缓存 HTML
  • 允许我指定相对于views目录的路径(就像Jade那样),而无需向每个路由添加path.join(__dirname, "views")

这里最好的解决方案是什么?

最佳答案

为了解决这个问题,我使用简单的 sendFile来自快速响应对象的方法。 这是一个用例:

var express = require('express');
var router = express.Router();
var path = require('path');

var views = function (view) { 
    path.join(__dirname, '../views/', view);
};

router.get('/', function (req, res) {
    res.sendfile(views('index.html'));
});

请注意,您可以在另一个文件中编写 views 函数,导出并在您想要的每个路由器中使用它。

sendFile 方法接受一个 maxAge 参数,您可以将其用于缓存目的。

您对模板引擎开销的看法是正确的。在我的测试中,我使用原始 html 而不是带有 html 导入的 jade,从服务器获得了 120~150 毫秒的更快响应时间。

关于node.js - 使用 Express 4 渲染原始 HTML View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27419962/

相关文章:

typescript - protected 路由的 jest.mock express-jwt 中间件行为

javascript - MissingSchemaError : Schema hasn't been registered for model

node.js - 找不到 gulpfile

node.js - Cheerio error, undefined not a function//这是正确的方法吗?

node.js - 在 Node.js 中级联 Express 框架服务器 GET 调用

javascript - 快速路由触发 : "Can' t set headers after they are sent.“错误

node.js - 谷歌地图 api 多标记 mongodb pug/jade

javascript - 将返回结果导出到另一个文件

node.js - mongoose/mongodb 流与数组性能

javascript - Socket.io 初始化导致 404 网络错误