【发布时间】:2016-12-27 15:23:27
【问题描述】:
我正在通过 Node.js 以编程方式执行 shell 命令,结果是 true... 字面意思是 <string> true,但我无法将其与 boolean 或 string 进行比较。
const exec = require('child_process').exec;
exec('docker inspect -f {{.State.Running}} service-redis', (err, stdout, stderr) => {
// here stdout has value "true"
console.log(typeof stdout) // returns "string"
console.log(stdout == 'true') // returns false
console.log(stdout == true) // returns false
});
我尝试转换 stdout.toString() 以防万一,但结果是一样的。我很困惑。有什么想法吗?
【问题讨论】:
-
stdout是一个流。 -
可能是因为末尾有一个
\n。你试过stdout.startsWith('true')吗? -
@ShreyashSSarnayak,太简单了……你是对的!
标签: node.js