我想知道为什么我无法在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>
答案 0 :(得分:2)
Node是JavaScript的服务器端运行时。你不能把它放在这样的<script>
标签中。
答案 1 :(得分:1)
由于CORS,浏览器不允许您像这样拨打另一台服务器。此外,如果没有支持(more info here),您无法在浏览器中使用require
方法。
您需要将此代码放到Node.js服务器上以使其执行,并使用Watson API进行响应(see examples here)。收到回复后,您可以使用此信息填充HTML页面。有很多方法可以设置这个流程,这是一个完全不同的主题。
此外 - 我希望您的代码示例中包含的用户名/密码不是您的实际凭据。如果是,请立即更改。