2017-03-19 25 views
2

私はhtmlファイルにいくつかの変数を渡して、電子メールで送信したいと思います。そのほとんどは問題に関連していませんので、私は基本的な例を取り上げます。外部ファイルのテンプレートリテラル

基本テンプレートリテラルはそうのように働く:私は今、外部ファイルにテンプレートコードをコピーしたと読み取ることがfs.readFileSyncを使用しています

Please visit google.com/testID and let them know that testID sent you. 

myLink = "google.com" 
myID = "testID" 
template = `Please visit ${myLink}/${myID} and let them know that ${myID} sent you.` 

これは、テンプレートの戻りになるだろうファイルを変数に追加します。問題は、実際にファイルが読み取られた後に${myLink}${myID}の値を評価していないことです。これを達成するためにとにかくありますか? Template Literalsでこれができない場合は、正しい方向に私を指してくれますか?

+2

テンプレートリテラルは、JSコードです。あなたが単にファイルを読んでいるのであれば、それは実行されるコードではなく、テキストとして読むことになります。文字列に正規表現ベースの '.replace()'を実行することができます。 – nnnnnn

答えて

3

ファイルを読み込みたくない場合は、最初に文字列として読み込みます。次に、JSモジュールを処理するためのより良い方法があります。

1つのファイルから関数としてテンプル文字列をエクスポートし、それを別のファイルにインポートします。

ファイル1:

module.exports = (myLink, myID) => `Please visit ${myLink}/${myID} and let them know that ${myID} sent you.` 

ファイル2:

const createString = require('./file1'); 
console.log(createString('google.com', 'testID')); 
+0

便利、ありがとう! – Astronaut

関連する問題