gpt4 book ai didi

javascript - 类型错误 : path must be a string with commander

转载 作者:搜寻专家 更新时间:2023-10-31 23:32:58 24 4
gpt4 key购买 nike

我想和指挥官一起读一个文件:

#!/usr/bin/env node

var fs = require('fs')
var program = require('commander')

program
.version('0.0.1')
.usage('<keywords>')
.parse(process.argv)

if(!program.args.length) {
program.help()
} else {
var filename = program.args

console.log('keys: ' + filename)

fs.readFile(filename, 'utf8', function(err, data) {
if (err) throw err
console.log(data)
})
}

$ ./m2k.js test.txt

但是,我得到了这个错误:

fs.js:430
binding.open(pathModule._makeLong(path),
^
TypeError: path must be a string

我做错了什么?

(我在与 m2k.js 相同的文件夹中有一个名为 test.txt 的文件。)

最佳答案

如果您打印program.args 的类型或program.args 本身,您就会知道它是一个数组。

console.log(Object.prototype.toString.call(program.args), program.args);
// [object Array] [ 'test.txt' ]

所以,你需要使用正确的索引才能像这样使用

var filename = program.args[0];

我认为 console.log('keys: ' + filename) 的结果对您帮助不大。这是因为当您使用 + 运算符时,它会尝试将 filename 对象转换为字符串,而转换为字符串的 String 数组通常只有逗号分隔的字符串。你可以这样检查

console.log(['a'].toString(), ['a', 'b'].toString());
// a a,b

关于javascript - 类型错误 : path must be a string with commander,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28721585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com