2017-04-18 25 views
0

的HTML我做中存在的特定文件夾中的文件列表,我想的是上市後,將有可能在HTML訪問此變量。通帶可變的NodeJS

Server.js

var http = require('http');  
var arquivo = require('fs'); 
var server = http.createServer(function(request, response){  
    response.writeHead(200, {'Content-Type': 'text/html'});  
    arquivo.readFile(__dirname+'/pagina.html', 
     function(err, html){    
     if (err) { 
      response.write("Arquivo não encontrado!");     
      response.end(); 
     } else{ 
      response.write(html); 
      var fs = require('fs'); 
      var files = fs.readdirSync(__dirname+'/list/'); //LIST FOLDER   
      response.end(); 

     }  
    }); 
}); 
server.listen(3000, function(){  
    console.log('Servidor está rodando!');  
}); 

pagina.html

<html> 
<script type="text/javascript"> 
    alert(files); //Name of var list 
</script> 
</hmtL> 

回答

0

有兩種方法可以做到這一點。

  1. 獨立呼叫到你的服務器上的另一個端點,並在客戶端的請求(推薦,因爲你需要稍後可能)

  2. 使用正則表達式來改變你的HTML文件(有趣的實驗)

想象你的HTML文件看起來像這樣;注意雙括號。

"<html><body><script> var files = {{myvars}} </script></body></html>" 

,你必須在一個數組

var yourFiles = ['file1', 'file2', 'file3'] 

然後你可以使用正則表達式來填補變量在原來的HTML字符串

var newHTML = html.replace('/\{\{myvars\}\}/', JSON.stringify(yourFiles)) 
response.write(newHTML); 
response.end(); 

最終的HTML發送的文件列表看起來像這樣

"<html><body><script> var files = ['file1', 'file2', 'file3'] </script></body></html>" 
0

用變量替換原始字符串有幾個乾淨的解決方案。我建議以下任: