【问题标题】:Potential issue when using Express without Jade使用 Express without Jade 时的潜在问题
【发布时间】:2016-04-26 07:07:25
【问题描述】:

我正在尝试在我的项目中使用 Express,推荐的视图方法是使用 Jade 模板引擎,如下所示:

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

但我不想重写我现有的 HTML 文件,所以我像这样使用sendfile

/* GET home page. */
router.get('/', function(req, res, next) {
  res.sendfile("./views/hello.html");
});

它工作得很好!

但我的问题是,如果我使用sendfile 替换render,是否有一些我没有注意到的潜在问题?比如性能或安全问题?

如果没有,那为什么推荐的方式是使用 Jade?​​p>

【问题讨论】:

  • 您不能以这种方式设置服务页面中的变量。因此,您只是在提供静态页面,如果那是您的用例,那没什么问题
  • 建议您在哪里使用 Jade?​​span>
  • 因为是我安装Express后代码里默认的,还是我太直观了?
  • @XRX 你的意思是你正在使用express-generator?这试图迎合那些对 Express 还不是很有经验的用户,即使 Jade 是默认的,它也可以为其他模板引擎生成代码。
  • @robertklep 实际上我正在使用 WebStorm IDE 自动创建项目,据我所知 使用 express-generator。我是像你说的那样对 Express 还不是很有经验的用户。我的大部分视图都是静态页面,您有其他方法推荐吗?如果能给我一些关键词就好了!

标签: javascript node.js express pug


【解决方案1】:

直接发送 HTML 文件没有问题。直接发送html会快一点,因为jade文件需要在发送前编译成html。

如果您需要动态模板(如 php、jsp...)来生成动态页面,建议使用 Jade。如果您的 HTML 仅适用于 Ajax,则您根本不需要 Jade。

【讨论】:

    【解决方案2】:

    恕我直言,我认为在发送 html 并且不使用模板引擎时没有问题。我认为他们只推荐使用模板引擎是因为开发人员更容易创建 html 结构的熊骨 plus 您可以使用模板引擎做更多事情(例如 if 语句、循环)。但请记住,您还应该为您的应用添加一些安全性,例如 helmetcors

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多