2017-01-10 5 views
0

Ich habe ein Knoten js-Programm, das das Express-Framework verwendet. Was passiert, ist eine POST-Anfrage mit Postman zu meiner API gemacht, und ich werde mit der Anfrage wie erforderlich umgehen (was sehr gut funktioniert).XML-Antwort auf eine Express-API

Ich möchte jedoch eine XML-Antwort auf den API-Aufruf zurücksenden. So einige Online-Graben zu tun, habe ich diese Bibliothek gefunden - https://www.npmjs.com/package/xml

Ich habe versucht, es zu meinen Code anzupassen, also muss ich die folgende JSON-Objekt in eine XML-Antwort konvertieren:

var responseJson = [{ 
    "methodResponse": { 
     "params": { 
     "param": { 
      "value": { 
       "struct": { 
        "member": [ 
        { 
         "name": "myValue", 
         "value": { 
          "string": "hi" 
         } 
        } 
        ] 
       } 
      } 
     } 
     } 
    } 
}]; 

Und dann in die Antwort, die ich wie folgt vorgehen:

 res.header('Content-Type', 'text/xml'); 
     res.send(xml(responseXml, true)); 

jedoch nur, kehrt:

<methodResponse/> 

und nichts anderes in der Postman-Antwort.

Irgendeine Idee, was mit dem Rest passiert ist und warum nur eine Zeile zurückgegeben wird? Gibt es einen besseren Weg, dies zu tun? Danke

Antwort

0

Sie müssen eckige Klammern um Ihre Objekte legen.

const data = [{ 
    "methodResponse": [{ 
     "params": [{ 
     "param": [{ 
      "value": [{ 
       "struct": [{ 
        "member": [{ 
         "name": "myValue", 
        },{ 
         "value": [{ 
         "string": "hi" 
         }] 
        }] 
       }] 
      }] 
     }] 
     }] 
    }] 
}]; 

Welche produzieren: <methodResponse><params><param><value><struct><member><name>myValue</name><value><string>hi</string></value></member></struct></value></param></params></methodResponse>

+0

oh ... warum die eckigen Klammern werden benötigt? – noDe1

+0

Meine Antwort aktualisiert, um das Mitgliedsobjekt zu reparieren. Ich bin nicht so vertraut mit xml, also nicht 100%, aber meine Vermutung ist, dass die Elemente nicht wie json Objekte einzigartig sind. – Ryan