Я пытаюсь выполнить скрипт nodejs из PowerShell Script. Я передаю в Powershell несколько параметров, которые передаются в nodejs.
Перед передачей их в nodejs я связываю их в объекте JSON. Это работает нормально в большинстве сценариев, кроме ниже:
Если один из входных параметров в Powershell имеет пробел между двумя словами.
Например.
$requestBody='{"name":"Kiran","Place":"San Diego"}'
//Here I have space in "San Diego" if I pass "SanDiego" it worked.
Код PowerShell
$Header = '{"xyz-qer-01":"Tew23343"}'
$endPoint="https://r0zvc2xdx7.execute-api.us-west-2.amazonaws.com"
$accessKey="<>"
$screteKey="<>"
$method='GET'
$requestBody='{"name":"Kiran","Place":"SanDiego"}'
$pathTemplate='/dev/network-provisioning/api/v1/subnets'
$additionalParam='{"header":{"xyz-qer-01":"Tew23343"}}'
$Filename = AWSSigner.js;
$Param = @{"endPoint"=$endPoint;"accessKey"=$accessKey;"screteKey"=$screteKey;"method"=$method;"requestBody"=$requestBody | ConvertFrom-Json;"pathTemplate"=$pathTemplate;"additionalParam"=$additionalParam | ConvertFrom-Json} | ConvertTo-Json -Compress
$Param2 = $Param | ConvertTo-Json -Compress
Write-Output = $Param2
$Result = C:\Users\kp250041\Desktop\Myfiles\node C:\Users\kp250041\Desktop\Myfiles\AWSSigner.js $Param2
Write-Output $Result
Код узла JS
let awsbody = process.argv[2].split('\\').join(' ') || '{}';
console.log(awsbody);
var obj = JSON.parse(awsbody);
console.log("Main Request:" + "\n");
console.log(obj);
console.log("\n" + "obj.endPoint - " + obj.endPoint);
console.log("obj.awsAccessKey - " + obj.accessKey);
console.log("obj.awsSecreteKey - " + obj.screteKey);
console.log("obj.awsPathTemplate - " + obj.pathTemplate);
console.log("obj.method - " + obj.method);
console.log(obj.additionalParam);
console.log(obj.requestBody);
Вот ошибка
C:\Users\kp250041\Desktop\Myfiles\node : undefined:1
At line:21 char:11
+ $Result = C:\Users\kp250041\Desktop\Myfiles\node C:\Users\kp250041\De ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (undefined:1:String) [],
RemoteException
+ FullyQualifiedErrorId : NativeCommandError
{"method":"GET","pathTemplate":"/dev/network- provisioning/api/v1/subnets","accessKey":"AKIAJ4Y5DGRDNBQ2HBYA","additionalParam":{"header":{"xyz-qer-01":"Tew
SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at Object.<anonymous>
(C:\Users\kp250041\Desktop\Myfiles\AWSSigner.js:18:16)
at Module._compile (internal/modules/cjs/loader.js:688:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
at Module.load (internal/modules/cjs/loader.js:598:32)
at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
at Function.Module._load (internal/modules/cjs/loader.js:529:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
at startup (internal/bootstrap/node.js:285:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)