我正在尝试将Watson Assistant与Watson音调分析器集成以分析用户输入,但是我想缺少一些东西,因为我的控制台中始终出现错误“控制器中的toneAnalyzer.tone”,但未定义。 我正在使用angularjs开发Web应用程序
错误:
ReferenceError: toneAnalyzer is not defined
at Object.toneanalyzer (conversation.service.js:54)
at Conversation.sendMessage.then.data (chat.controller.js:43)
at angular.js:17000
at m.$digest (angular.js:18182)
at m.$apply (angular.js:18480)
at l (angular.js:12501)
at XMLHttpRequest.s.onload (angular.js:12655) "Possibly unhandled
rejection: {}"
这是我的 app.js
var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');
var toneAnalyzer = new ToneAnalyzerV3({
version_date: '2016-05-19',
version: '2017-09-21'
});
这是 service.js
function tone_analyzer(contents) {
toneAnalyzer.tone({
text: contents
},
function(err, tone) {
if (err)
console.log(err);
else
var tone = JSON.stringify(tone, null, 2);
//this is the JSON response (tone analysis) that you
can view in terminal
console.log(JSON.stringify(tone, null, 2));
});
return tone;
}
这是我的 controller.js
Conversation.sendMessage(message.content).then(data => {
if (data) {
var reply = {};
reply["recipient"] = "watson";
if (data.intents[0].intent == 'emotion') {
reply["content"] = Conversation.toneanalyzer(message.content)
} else {
reply["content"] = data.output.text[0];
}
vm.messages.push(reply);
}
});
我认为我应该在我的 routes.js 中使用此功能,但是无论是否我都感到困惑
app.post('/api/tone', function(req, res, next) {
toneAnalyzer.tone(req.body, function(err, data) {
if (err) {
return next(err);
}
return res.json(data);
});
})