Этот код работает отлично:Инкапсуляция API.ai называют в внешний Javascript функция не работает
var apiai = require('apiai');
var app = apiai(<token>);
var request = app.textRequest('jacket', {
'sessionId': 123456
});
request.on('response', function(response) {
console.log(response);
console.log(response.result.fulfillment.speech);
console.log(response.result.metadata.intentName);
});
request.on('error', function(error) {
console.log(error);
});
request.end();
И он производит следующий вывод на консоль:
{ id: '2865abde-ac8f-4ac3-816e-483c68f709d0',
timestamp: '2016-11-08T22:38:56.461Z',
result:
{ source: 'agent',
resolvedQuery: 'jacket',
action: '',
actionIncomplete: false,
parameters: {},
contexts: [ [Object] ],
metadata:
{ intentId: '357af94f-00b3-4016-a661-732419ddafd6',
webhookUsed: 'false',
intentName: 'clothing' },
fulfillment: { speech: 'clothing2', messages: [Object] },
score: 0.6 },
status: { code: 200, errorType: 'success' },
sessionId: '123456' }
clothing2
clothing
Однако, когда я пытаюсь сломать это друг от друга в вызове функции, вещи не работают так хорошо:
Файл: main.js
var apiai = require('apiai');
var app3 = apiai(<token>);
exports.getresponse = function(inputstring){
var request = app3.textRequest(inputstring, {'sessionId': 123456});
request.on('response', function(response) {
return(response);
});
request.on('error', function(error) {
return(error);
});
request.end();
};
Файл: moda.js
var express = require("express");
var app = express();
var joe = require('./main.js');
console.log(joe.getresponse('jacket'));
app.listen(3000);
Когда я бегу moda.js (узел moda.js), я получаю только
undefined
как выход консоли.
Что я здесь делаю неправильно?
Большое спасибо!
Вы публично выставили токен api.ai в этом посте. Вы ДОЛЖНЫ немедленно восстановить этот токен. https: //docs.api.ai/docs/authentication – Alan