2013-03-30 40 views
2

我想在Node.js中製作一個簡單的ftp客戶端。一切正常,但我不知道如何在我的Jade模板中編寫「singleFile.name」。res.render,res.write和Jade

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天節點學習),所以我會很高興你對所有錯誤的迴應。

謝謝!

+0

'files'中可以有多個文件,你想列出它們嗎?或者只是第一個? – robertklep

回答

0

最好將文件數組發送到Jade模板。

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

然後在模板中寫一個循環。例如:

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

見玉循環文檔:https://github.com/visionmedia/jade#a9

這不是真的很好的做法,嘗試「預格式化」你的代碼之類的東西,因爲這+ "<br>",本身就是一個點模板引擎。

+0

感謝您對我的問題Bret的建議!它像一個魅力。
即時只使用作爲臨時解決方案:-)。 –