2016-01-21 25 views
0

我想知道爲什麼我不能在HTML中打印我的節點js代碼的結果。 如果從節點的命令提示符運行程序一切正常,但是當我嘗試在HTML頁面中執行它時,我無法進行操作。nodejs中的輸出選項

這是我的代碼:

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<h1> Translation </h1> 
 
<p> My first Translation </p> 
 

 

 

 
<script> 
 

 

 
var watson = require('watson-developer-cloud'); 
 

 
var language_translation = watson.language_translation({ 
 
    username: 'bff2a4a9-3e8c-4915-bb54-d8b2a1bbff91', 
 
    password: 'w0mXMEU1PnsZ', 
 
    version: 'v2' 
 
}); 
 

 
language_translation.translate({ 
 

 
    text: 'A sentence must have a verb', source : 'en', target: 'es' }, 
 
    function (err, translation) { 
 
    if (err) 
 
     document.write('error:', err); 
 
    else 
 
     document.write(JSON.stringify(translation, null, 2)); 
 
}); 
 

 
language_translation.identify({ 
 
    text: 'The language translation service takes text input and identifies the language used.' }, 
 
    function (err, language) { 
 
    if (err) 
 
     document.write('error:', err); 
 
    else 
 
     document.write(JSON.stringify(language, null, 2)); 
 
}); 
 

 
</script> 
 

 

 
</body> 
 
</html>

回答

2

節點是JavaScript的服務器端運行。你不能把它放在這樣的<script>標籤中。

1

由於CORS,瀏覽器不允許你打電話給其他服務器。此外,您不能在沒有支持的瀏覽器中使用require方法(more info here)。

您需要將此代碼放到Node.js服務器上以供其執行,Watson API才能響應(see examples here)。收到回覆後,您可以使用此信息填充HTML頁面。有很多方法可以設置此流程,這是一個完全不同的主題。

此外 - 我希望您的代碼示例中包含的用戶名/密碼不是您的實際憑據。如果是這樣,請立即改變它們。

+1

+1關於證書,並更改您已與thoses簽署的網站上的證書,編輯將不足以隱藏這一點。 – DrakaSAN