我有两个职能。第一个是获取一段文本( orgText )并将其翻译成英文。结果在 res.text 之内。
我需要将 res.text 带到toneAnalyzer。现在,我已经输入了原始文本,只是为了确保API调用正常工作。是的。
所以基本问题是:“如何在toneAnalyzer中将 orgText 与 res.text 交换?
app.post('/api/tone', function(req, res, next) {
var orgText= req.body;
//Translating input from danish to english
var translate = require('yandex-translate')('key');
translate.translate(orgText.text, { to: 'en' }, function (err, res) {
console.log(res.text);
});
// Translate end
toneAnalyzer.tone(orgText, function(err, data) {
if (err) {
return next(err);
}
return res.json(data);
});
});
我试图将toneAnalyzer函数移入翻译函数,但出现此错误:
error: { code: 500, error: 'Missing required parameters: text' }
orgText上console.log的输出如下:
{ text:
'Jeg var meget glad for den lige i starten, men så begyndte den desværre at gå i stykker.\nJeg er meget tilfreds, og vil elske hvis jeg kunne få råd til en mere.\nDet er det værste ragelse jeg nogensinde har ejet. Den virkede kun i sølle 2 dage.\n\n',
language: 'en' }
.... res.text的输出看起来像这样:
[ 'I was very glad the right in the beginning, but then started, unfortunately, to go in pieces.\nI am very satisfied, and would love if I could get advice for a more.\nIt is the worst junk I have ever owned. It was only in a measly 2 days.\n\n' ]
正在格式化。
答案 0 :(得分:0)
正如我在my post about callbacks中所说,将需要该值的代码移到该值所在的位置。这意味着将toneAnalyzer.tone
调用移到translate
回调中:
app.post('/api/tone', function(req, res, next) {
var orgText = req.body;
//Translating input from danish to english
var translate = require('yandex-translate')('trnsl.1.1.20190501T085025Z.d0e7ff2611e9f05a.d4ef69a7a21f28712b67991325adbf74abf72c8b');
translate.translate(orgText.text, {to: 'en'}, function(err, res) {
if (err) {
// handle error
return;
}
toneAnalyzer.tone(res.text, function(err, data) {
if (err) {
return next(err);
}
return res.json(data);
});
});
});