ホームページ > ウェブフロントエンド > jsチュートリアル > Webサービスのnodejs実装の問題分析

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

不言
リリース: 2019-02-28 13:32:25
転載
3920 人が閲覧しました

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

ライブラリ、ツール

node-soap
soapui

作成

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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 つだけであることには特別なことはありません。

1

2

3

4

args = {

    key1: val1,

    key2: val2

}

ログイン後にコピー
ログイン後にコピー

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

例:

1

2

3

4

5

6

7

8

9

let val2: Array<datatype> = [

        {

            key3: val3

        }

    ];

let args = {

    key1: val1,

    key2: val2

}</datatype>

ログイン後にコピー
ログイン後にコピー

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

1

2

3

4

5

6

7

8

9

10

11

let val2: Array<datatype> = [

        {

            key3: val3

        }

    ];

let args = {

    key1: val1,

    key2: {

        dataType: val2

    }

}</datatype>

ログイン後にコピー
ログイン後にコピー

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

1

2

3

4

5

6

7

8

9

10

// 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作成

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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 つだけであることには特別なことはありません。

1

2

3

4

args = {

    key1: val1,

    key2: val2

}

ログイン後にコピー
ログイン後にコピー

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

例:

1

2

3

4

5

6

7

8

9

let val2: Array<datatype> = [

        {

            key3: val3

        }

    ];

let args = {

    key1: val1,

    key2: val2

}</datatype>

ログイン後にコピー
ログイン後にコピー

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

1

2

3

4

5

6

7

8

9

10

11

let val2: Array<datatype> = [

        {

            key3: val3

        }

    ];

let args = {

    key1: val1,

    key2: {

        dataType: val2

    }

}</datatype>

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

1

2

3

4

5

6

7

8

9

10

// 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 サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
Node.js は何に使用されますか?
から 1970-01-01 08:00:00
0
0
0
node.js - サーバーポート80の問題
から 1970-01-01 08:00:00
0
0
0
javascript - node.js I/O最適化
から 1970-01-01 08:00:00
0
0
0
Vue と Node.js を学習する初心者の混乱
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート