2016-01-21 94 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