【发布时间】:2019-08-15 22:36:12
【问题描述】:
我正在尝试使用 powershell 执行节点 js 代码。将 JSON 对象作为命令行参数发送给 nodejs 程序进行处理。
//Java Script Code
let command = JSON.parse(process.argv[2].split('\\').join('') || '{}');
console.log(JSON.stringify(command));
console.log(command.bonding_options);
这是 PowerShell 命令:
C:\nodejs\node Parse.js '"{\"bonding_options\":\"mode=802.3ad miimon=100 xmit_hash_policy=layer3+4\"}"'
如果您仔细观察,输入参数有空格,例如“mode=802.3ad miimon”。 '3ad miimon' 之间的空间 原始输入有我们无法避免的空格。如果我发送带有空格值的输入,我会得到以下错误:
{"bonding_options":"mode=802.3ad
SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at Object.<anonymous> (C:\Users\kp250041\Desktop\Myfiles\Parse.js:3:20)
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)
如果空格被删除,它会起作用:
{ bonding_options: 'mode=802.3admiimon=100xmit_hash_policy=layer3+4' }
mode=802.3admiimon=100xmit_hash_policy=layer3+4
请告知,在这种情况下如何处理空格。 提前感谢您的帮助。
谢谢 基兰
【问题讨论】:
标签: javascript node.js json