AQL Query returns a Promise

2019-03-03 15:46发布

问题:

I have been trying to get a query result from Arangodb in to my front end service(Angular 4) using soap message. I am able to get a result of the query but printed out in console.log. But how can I get it under this function(myService). In other words, How can I feed my query result into a function rather than printing out the result in console. So that I can use this function to get the output of the query?

I have used .then() as well in order to get the promise.What am I still missing in it ?

server.js

var myService = db.query(aqlQuery`
                LET startVertex = (FOR doc IN spec
                FILTER doc.serial_no == '"123456abcde"'
                LIMIT 2
                RETURN doc
                )[0]

               FOR v IN 1 ANY startVertex belongs_to
               RETURN v.ip`,
               {
                 bindVar1: 'value',
                 bindVar2: 'value',
               })..then(function(res) {
                   console.log("documents:" + res._result);
            })

I would like to feed the function into soap msg and receive it Angular 4,

soap msg

var soap_msg = '<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:examples:CheckUserNameService">' +
  '<soapenv:Header/>' +
  '<soapenv:Body>' +
  '<urn:CheckUserNameResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
  '<status xsi:type="xsd:string">' + (myService) + '</status>' +
  '</urn:CheckUserNameResponse>' +
  '</soapenv:Body>' +
  '</soapenv:Envelope>';
  
var server = http.createServer(function(request,response) {
    response.end(soap_msg);
});

var port = 8000;
server.listen(port);
var soapServer = soap.listen(server, '/test', myService, xml);

But the output is either empty braces If I am using JSON.stringify or else it is [object Promise]. What am I doing wrong here ?

output