因此,我正在使用node.js来使用IBM Cloud的一个应用程序接口。我有这段代码,有了这段代码,我可以可视化响应,但是,我需要将这个"res.send“传递给HTML。那么,我该怎么做呢?
这是我用Node.js编写的代码。谢谢!
var express = require('express');
var path = require('path');
var app = express();
app.listen(2000, function () {
console.log(' Watson!');
});
//---------------
app.get('/', (req, res) => {
//-------------Watson
var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');
var tone_analyzer = new ToneAnalyzerV3({
username: '',
password: '',
version_date: '2017-09-21',
accept_language: 'es',
tone_name: 'es'
});
var params = {
'tone_input': require('./tone.json'),
'content_type': 'application/json',
'content_language' : 'en',
'accept_language' : 'es'
};
tone_analyzer.tone(params, function(err, response) {
if (err){
console.log('error:', err);
res.send(err);
}
else{
res.render('index.html');
res.send({"Hi! I'm Waton and I can see:":response.document_tone.tones[0].tone_name});
console.log(JSON.stringify(response, null, 2));
}
});
});
发布于 2018-04-05 09:16:19
发布于 2018-04-18 14:23:45
您的代码必须向客户端(web浏览器)返回HTTP响应。因此,您有一些与可以在Express response对象(在本例中为res)上调用的不同函数相关的选项。有关这方面的更多信息,请参阅here。
您可以像使用res.send([body])一样使用HTTP :这将在HTTP响应主体中写入您创建的字符串,并附加Tone Analyzer返回的值。然而,这只会返回一个包含该字符串的空白页面,对于具有特定外观和感觉的更复杂的web应用程序,这可能不是您想要的。在这种情况下,您可以使用一个模板引擎,它会将您选择的变量的值附加到页面(视图)的静态HTML代码中。有关详细信息,请参阅Using template engines with Express。
请注意,无论您选择哪种解决方案,显然您只能将HTTP响应发送回客户端一次,因此您只能选择上述选项中的一个。
https://stackoverflow.com/questions/49662531
复制相似问题