この記事の内容は、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
};
let client = await soap.createClientAsync(URL);
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 | let val2: Array<datatype> = [
{
key3: val3
}
];
let args = {
key1: val1,
key2: val2
}</datatype>
|
ログイン後にコピー
ログイン後にコピー
https://stackoverflow.com/que...
#コラム
-
記事詳細
#
20時間前に投稿
Nodejs による WebService の実装に関する質問の概要

## Node.js
## javascript 
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
};
let client = await soap.createClientAsync(URL);
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 | let val2: Array<datatype> = [
{
key3: val3
}
];
let args = {
key1: val1,
key2: val2
}</datatype>
|
ログイン後にコピー
ログイン後にコピー
https://stackoverflow.com/que...
# ############## #############################報告######
興味があるかもしれません
- # ############# ###################コメント###
時間順に並べ替え

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