2017-07-15 4 views
1

ではありませんが、私はそれはfs.readFile戻っていることが判明し、エラーthis.templateText.replace is not a functionはthis.templateText.replace私は、ファイルからEJSテンプレートをレンダリングしようとしている機能

const http = require('http'); 
const fs = require('fs'); 
const ejs = require('ejs'); 

const server = http.createServer(function(req, res){ 
    fs.readFile('index.ejs', function(err, data) { 
     if (err) { 
      res.end("Error"); 
     } 

     res.end(ejs.render(data, { title: "Hello" })); 
    }); 
}); 

server.listen(4000); 

答えて

6

を得ているエラーをスローしますコールバックdataの生バッファー、ejs.rednerは文字列が必要です。

エンコードが指定されていない場合は、ローバッファが返されます。

あなたはfs.readFileから文字列を取得したい場合、あなたは、2番目の引数としてエンコーディングを渡す必要があります。

fs.readFile('index.ejs', 'utf-8', function(err, data) { 
    // now data is a string 
}); 
関連する問題