res.render, res.write and Jade



我试图使简单的ftp客户端在Node.js。一切都很好,但是我不知道如何在我的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天节点学习),所以我很高兴你对错误的所有回应。

谢谢!

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

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

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

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

参见Jade loops文档:https://github.com/visionmedia/jade#a9

+ "<br>"这样的东西来"预格式化"你的代码并不是很好的做法,因为这本身就是模板引擎的重点。

最新更新