Heim  >  Artikel  >  Web-Frontend  >  Problemanalyse der NodeJS-Implementierung des Webservices

Problemanalyse der NodeJS-Implementierung des Webservices

不言
不言nach vorne
2019-02-28 13:32:253798Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Analyse des Problems der Webservice-Implementierung durch NodeJS. Ich hoffe, dass er für Freunde hilfreich ist.

Bibliothek, Werkzeug

node-soap
soapui

Erstellen

Achten Sie auf die Reihenfolge der Parameter in args

const soap = require('soap');
let URL = "你的wsdl路径,可以是url或者本地文件";
// 注意参数顺序!!!!!!!!!
let args = {
    key1: val1,
    key2: val2
};
// promise创建
let client = await soap.createClientAsync(URL);

// callback创建
soap.createClient(url, function(err, client) {
    client.MyFunction(args, function(err, result) {
          console.log(result);
    });
});

Mir persönlich gefällt die Promise-Form. Der Aufruf anderer Funktionen kann auf zwei Arten implementiert werden. Wenn es asynchron ist, müssen Sie nach dem Funktionsnamen, den Sie aufrufen, „Async“ hinzufügen.

Aufruf

Es ist nichts Besonderes, nur eine Ebene von Parameterdaten zu haben, wie zum Beispiel:

args = {
    key1: val1,
    key2: val2
}

Wenn es eine andere Ebene im Parameter gibt, wird Node-Soap dies nicht tun Generieren Sie das Band automatisch basierend auf WSDL. Daten mit Namespace-Präfix können XML nach der Übertragung an den Server nicht analysieren.

Zum Beispiel:

let val2: Array<dataType> = [
        {
            key3: val3
        }
    ];
let args = {
    key1: val1,
    key2: val2
}

Zu diesem Zeitpunkt müssen Sie beim Übergeben der Daten etwas zusätzliche Arbeit leisten. Ändern Sie es in:

let val2: Array<dataType> = [
        {
            key3: val3
        }
    ];
let args = {
    key1: val1,
    key2: {
        dataType: val2
    }
}

Der obige Datentyp ist der Typ Beim Generieren von XML gibt es eine Deklaration in XML. Wenn keine Deklaration vorhanden ist, wird sie auf andere Weise geschrieben, z Das von Soapui generierte Namespace-Präfix und andere Typen sind spezifisch. Die Implementierung sollte universell sein); >

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Vor 20 Stunden gepostet                                                                                                                                                 >
Javascript

16 Mal                                                             Das Lesen dauert 6 Minuten                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

Bibliotheken, Werkzeuge


node-soap

soapui

create

Achten Sie auf die Reihenfolge der Parameter in args

const soap = require('soap');
let URL = "你的wsdl路径,可以是url或者本地文件";
// 注意参数顺序!!!!!!!!!
let args = {
    key1: val1,
    key2: val2
};
// promise创建
let client = await soap.createClientAsync(URL);

// callback创建
soap.createClient(url, function(err, client) {
    client.MyFunction(args, function(err, result) {
          console.log(result);
    });
});
Mir persönlich gefällt das Promise-Formular. Der spätere Aufruf anderer Funktionen kann auf zwei Arten implementiert werden. Wenn es sich um ein asynchrones Formular handelt, müssen Sie „ hinzufügen. Async“ nach dem Funktionsnamen, den Sie aufrufen.

Aufruf Es ist nichts Besonderes, nur eine Ebene von Parameterdaten zu haben, wie zum Beispiel:

args = {
    key1: val1,
    key2: val2
}
Wenn es eine andere Ebene im Parameter gibt, wird Node-Soap dies nicht tun Generieren Sie das Band automatisch basierend auf WSDL. Daten mit Namespace-Präfix können XML nach der Übertragung an den Server nicht analysieren. Zum Beispiel:
let val2: Array<dataType> = [
        {
            key3: val3
        }
    ];
let args = {
    key1: val1,
    key2: val2
}
Zu diesem Zeitpunkt müssen Sie beim Übergeben der Daten etwas zusätzliche Arbeit leisten. Ändern Sie es in:
let val2: Array<dataType> = [
        {
            key3: val3
        }
    ];
let args = {
    key1: val1,
    key2: {
        dataType: val2
    }
}


Das könnte Sie interessieren

Kommentare

                                                                            Nach Zeit sortieren

Laden...

    Weitere Kommentare anzeigen
  • Problemanalyse der NodeJS-Implementierung des Webservices

Das obige ist der detaillierte Inhalt vonProblemanalyse der NodeJS-Implementierung des Webservices. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen