wolfram альфа-API node.js

Я использую этот код Node.js:

var http = require('http');
var createClient = require('./createClient');
http.createServer(function (req, res) {
    res.write('Hello World!'); //write a response to the client
    var wolfram = require('wolfram').createClient("My ID");
    var question = "how far nyc to chicago"
    wolfram.query(question, function(err, result) {
        var results = result[1].subpods[0].value ;
        console.log("Result: %j", results)
        res.write(results);
    })
    res.end();
}).listen(8080);

У меня ошибка на res.write(results) Если я прокомментирую причину ошибки // res.write(results), то результат выводится дважды:

Result: "1158 km (kilometers)"
Result: "1158 km (kilometers)"

Я хотел бы сохранить result[1].subpods[0].value в переменной (результаты), чтобы я мог отобразить его на странице html (res.write), а также использовать его позже.


person Ala Garali    schedule 14.08.2018    source источник


Ответы (1)


Ваш код трудно читать, потому что он не имеет отступа, но похоже, что вы вызываете res.end() перед res.write(), потому что запрос Wolfram асинхронный. Попробуйте переместить res.end() после res.write() внутри одного и того же функционального блока обратного вызова.

person funkizer    schedule 14.08.2018
comment
Как получить переменную результатов для последующего использования - person Ala Garali; 14.08.2018