nodejs中的输出选项

时间:2016-01-21 18:16:59

标签: javascript html node.js ibm-cloud

我想知道为什么我无法在HTML中打印我的节点js代码的结果。 如果从Node的命令提示符运行程序一切正常,但是当我尝试在网页中的HTML中执行它时我无法做到。

这是我的代码:

<!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 个答案:

答案 0 :(得分:2)

Node是JavaScript的服务器端运行时。你不能把它放在这样的<script>标签中。

答案 1 :(得分:1)

由于CORS,浏览器不允许您像这样拨打另一台服务器。此外,如果没有支持(more info here),您无法在浏览器中使用require方法。

您需要将此代码放到Node.js服务器上以使其执行,并使用Watson API进行响应(see examples here)。收到回复后,您可以使用此信息填充HTML页面。有很多方法可以设置这个流程,这是一个完全不同的主题。

此外 - 我希望您的代码示例中包含的用户名/密码不是您的实际凭据。如果是,请立即更改。