我正在使用Node.js来调用IBM Cloud的一个API。我有这段代码,可以看到响应结果,但是我需要将这个"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));
}
});
});
index.html
之前插入数据,那么通常会使用一个模板引擎,将HTML模板和数据传递给模板引擎,然后模板引擎会根据你的模板设计插入数据。你不能同时调用res.render()
和res.send()
。只有第一个被调用的方法才会发送任何内容。 - jfriend00