2017-08-07 97 views
-1

我訪問使用readFileSync一個HTML文件中像這樣訪問變量值

var content = fs.readFileSync("client/index.html", "utf-8"); 

並傳遞內容的HTML。

Students.afterRemote('create', function(ctx, result, next) { 
loopback.Email.send({ 
      to: result.email, 
      from: "[email protected]", 
      subject: "Thanks for choosing Us", 
      text: "text message", 
      html: content, 
      var: { 
       myVar1: 'a custom value' 
      }, 
      headers: { 
       "X-My-Header": "My Custom header" 
      } 
     }) 
     .then(function(response) { 
     }) 
     .catch(function(err) { 
     }); 
} 

在我的HTML文件,我有這樣的代碼

result.name + "<p> Your account is created successfully.Thanks for creating an account</p>" 

在電子郵件它沒有給我result.name的價值。它正在顯示result.name。我如何獲得它的價值?謝謝

+0

你從來沒有定義'result'。我覺得你已經提供了幾段代碼而沒有嘗試做出正確的[mcve] – Quentin

+0

[tag:loopback]標籤在這裏看起來並不相關。 – Quentin

+0

我得到正確的結果。問題是我如何訪問它? –

回答

0

當你在字符串裏面有一些看起來像JavaScript代碼的東西時,它仍然只是該字符串的一部分。它不會被執行,就好像它是JavaScript代碼一樣。

var result = { name: "bar" }; 
 
var string = ` result.name + "<p> Your account is created successfully.Thanks for creating an account</p>"`; 
 
console.log(string);

如果你想使用變量,那麼你就需要把它們寫在JavaScript中,而不是在你讀入一個變量的文本文件。

var result = { name: "bar" }; 
 
var string = `<p> Your account is created successfully.Thanks for creating an account</p>`; 
 
var output = result.name + string; 
 
console.log(output);

你可以把佔位符的文件中,然後使用替代電話...

var result = { name: "bar" }; 
 
var string = `<<<name>>><p> Your account is created successfully.Thanks for creating an account</p>`; 
 
string = string.replace("<<<name>>>", result.name); 
 
console.log(string);

...但在這個階段你正在創建自己的模板語言,應該可以選擇an off the shelf option喜歡Nunjucks

var result = { name: "bar" }; 
 
var template = `{{ name }}<p> Your account is created successfully.Thanks for creating an account</p>`; 
 

 
console.log(nunjucks.renderString(template, result));
<script src="https://cdnjs.cloudflare.com/ajax/libs/nunjucks/3.0.1/nunjucks.min.js"></script>

+0

謝謝你的時間。讚賞你的幫助。 –