2017-07-02 5 views
0

https://github.com/codyc4321/Flashcard-Generator私はHTMLジェネレータを独自の関数に分割したいファイルがあります。gitignoreメインのgitignoreファイルを使ってサブフォルダを作成

ファイルはjs/main.jsです。このコールバック:

function generate_html(cards_array) { 
    // https://stackoverflow.com/questions/7083045/fs-how-do-i-locate-a-parent-folder 
    var webpage_path = __dirname + '/../index_generated.html'; 
    var template_path = __dirname + '/../index_template.html'; 
    var html; 
    var html = fs.readFile(template_path, 'utf-8', function(error, source) { 
     var template = handlebars.compile(source); 
     var data = { 
      cards: cardsArr 
     } 
     return template(data); 
    }); 
    return html 
} 

ハンドルバーで生成されたhtmlの代わりにundefinedが返されます。この関数からhtmlを返すには?ありがとう

答えて

1

undefined beause fs.readFile()は非同期です。 fs.readFileSync()を試してみるか、fs.readFile()という応答で呼び出されるコールバック関数を使用してください。

function generate_html(cards_array, cb) { 
    // https://stackoverflow.com/questions/7083045/fs-how-do-i-locate-a-parent-folder 
    var webpage_path = __dirname + '/../index_generated.html'; 
    var template_path = __dirname + '/../index_template.html'; 
    fs.readFile(template_path, 'utf-8', function(error, source) { 
     var template = handlebars.compile(source); 
     var data = { 
      cards: cardsArr 
     } 
     cb(template(data)); 
    }); 
} 

cbは、応答のパラメータを持つコールバック関数です。

関連する問題