ホームページ  >  記事  >  ウェブフロントエンド  >  Webサービスのnodejs実装の問題分析

Webサービスのnodejs実装の問題分析

不言
不言転載
2019-02-28 13:32:253723ブラウズ

この記事の内容は、Web サービスを実装する Nodejs の問題の分析に関するものです。必要な方は参考にしていただければ幸いです。

ライブラリ、ツール

node-soap
soapui

作成

引数内のパラメータの順序に注意してください

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);
    });
});

個人的には Promise 形式が気に入っています。他の関数の呼び出しは 2 つの方法で実装できます。非同期の場合は、呼び出す関数名の後に「Async」を追加する必要があります。

Call

次のようなパラメータ データのレイヤが 1 つだけであることには特別なことはありません。

args = {
    key1: val1,
    key2: val2
}

パラメータに別のレイヤがある場合、node-soap はwsdl に基づいてバンドを自動的に生成します。 名前空間プレフィックスを持つデータは、サーバーに送信された後に XML の解析に失敗します。

例:

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

現時点では、データを渡すときに追加の作業を行う必要があります:

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

上記の dataType は型です。 XML を生成するとき、XML 内に宣言があります。宣言がない場合は、次のように書き換える必要があります (Array は、ここで参照するために使用されます)。 soapui によって生成された名前空間プレフィックス、およびその他のタイプが指定されている場合、実装はユニバーサルである必要があります);

// dataType或namespace prefix在生成xml未声明
let val2: Array<datatype> = [
        {
            key3: val3
        }
    ];
let args = {
    key1: val1,
    key2: val2
}</datatype>

https://stackoverflow.com/que...

#コラム







Nodejs による WebService の実装に関する質問の概要

16 読書                                                             読むのに 6 分かかります                                                   



# 1

                                                                                                                                                                                                                                                                                                                                                                                  ライブラリ、ツールnode-soapsoapui作成

引数のパラメータの順序に注意してください

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);
    });
});

個人的には、promise 形式が気に入っています。その後の他の関数の呼び出しは、2 つの方法で実装できます。非同期の場合は、「Async」を追加する必要があります。呼び出す関数名の後に「」を付けます。

Call

次のようなパラメータ データのレイヤが 1 つだけであることには特別なことはありません。

args = {
    key1: val1,
    key2: val2
}

パラメータに別のレイヤがある場合、node-soap はwsdl に基づいてバンドを自動的に生成します。 名前空間プレフィックスを持つデータは、サーバーに送信された後に XML の解析に失敗します。

例:

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

現時点では、データを渡すときに追加の作業を行う必要があります:

let val2: Array<datatype> = [
        {
            key3: val3
        }
    ];
let args = {
    key1: val1,
    key2: {
        dataType: val2
    }
}</datatype>
上記の dataType は型です。 XML を生成するとき、XML 内に宣言があります。宣言がない場合は、次のように書き換える必要があります (Array は、ここで参照するために使用されます)。 soapui によって生成された名前空間プレフィックス、およびその他のタイプが指定されている場合、実装はユニバーサルである必要があります);

// dataType或namespace prefix在生成xml未声明
let val2: Array<datatype> = [
        {
            key3: val3
        }
    ];
let args = {
    key1: val1,
    key2: val2
}</datatype>

https://stackoverflow.com/que...

# ############## #############################報告######

興味があるかもしれません
  • # ############# ###################コメント###                                                                                            時間順に並べ替え

    Webサービスのnodejs実装の問題分析

  • 読み込み中...

  • コメントをさらに表示

以上がWebサービスのnodejs実装の問題分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。