【问题标题】:res.render, res.write and Jaderes.render、res.write 和 Jade
【发布时间】:2013-03-30 12:48:05
【问题描述】:

我正在尝试在 Node.js 中制作简单的 ftp 客户端。一切正常,但我不知道如何在我的 Jade 模板中编写“singleFile.name”。

app.post('/ftp/login', function(req, res){
  ftp.ls("/directory", function(err, files){
      if (err) return console.error(err);

      files.forEach(function(singleFile) {
        if (singleFile != null){
        console.log(singleFile.name + "<br>");
        }
      });
  });

 res.render('ftpLogin', { host: fHost, username: fUsername, port: fPort});
});

没有“res.render”没有问题,但我想将它添加到我的模板中。

res.writeHead(200, {"Content-type" : "text/html; charset=utf-8"});
[...]
res.write(singleFile.name + "<br>");
[...]
res.end();

我是新手(3 天 Node 学习),所以我会很高兴看到您对错误的所有回应。

谢谢!

【问题讨论】:

  • files中可以有多个文件,要全部列出吗?还是只是第一个?

标签: javascript node.js express pug


【解决方案1】:

最好将文件数组发送到 Jade 模板。

res.render('ftpLogin', { host: fHost, ..., files: files });

然后在模板中写一个循环。例如:

each file in files
    | #{file.name}
    br

请参阅 Jade 循环文档:https://github.com/visionmedia/jade#a9

尝试使用 + "&lt;br&gt;" 之类的东西“预先格式化”代码并不是一个很好的做法,因为这本身就是模板引擎的重点。

【讨论】:

  • 感谢您对我的问题 Bret 的建议!它就像一个魅力。
    我只用作临时解决方案:-)。
猜你喜欢
  • 2015-06-24
  • 2016-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
相关资源
最近更新 更多