javascript - [ERR_INVALID_ARG_TYPE]
问题描述
我不断得到
TypeError [ERR_INVALID_ARG_TYPE]:“数据”参数必须是字符串类型或 Buffer、TypedArray 或 DataView 的实例。收到 Array 的实例
我试图从一个文件中取出行并将它们分隔在 a:
并将它们作为两个单独的行放入另一个文件中,然后通过应用程序运行它并根据它们是否工作来分隔这些行。
const fs = require('fs');
const conf = '.\\login.conf'
const directory = '.\\input\\'
fs.readdir(directory, (err, files) => {
files.forEach(files => {
var files_directory = directory + files
fs.readFile(files_directory, 'utf8', (err, data) => {
if (err) {console.log('error', err)}
var data_array = data.split(' ')
var spaced_data_array = data_array + ' '
Array.from(spaced_data_array)
var d = spaced_data_array.split(' ')
console.log(d)
var data = d + ''
login = data.split(':')
fs.writeFile(conf, login, (err, result) => {
if (err) {console.log('error', err)}
})
require('child_process').exec('.\\ovpnconnector.exe start nordvpn.ovpn')
if (work = 0) {
console.log('Not Working')
fs.writeFile('.\\output\\not_working.txt', holder, (err, result) => {
if (err) {console.log('error', err)}
})
}
if (work = 1) {
console.log('Working')
fs.writeFile('.\\output\\working.txt', holder, (err, result) => {
if (err) {console.log('error', err)}
})
}
})
})
})
解决方案
此块导致错误:
login = data.split(':')
fs.writeFile(conf, login, (err, result) => {
login
是一个数组,不能作为fs.writeFile
方法的第二个参数。您可以在错误消息中看到它:
The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Array
行动
你正在尝试做的事情:从文件中取出行并将它们分隔在 a : 并将它们作为两个单独的行放入另一个文件
您可以通过换行符将数组合并为字符串。
login = data.split(':').join('\r\n')
fs.writeFile(conf, login, (err, result) => {
推荐阅读
- python - 如何为 Django 项目编写 ProxyConnetionError 异常(errno - 10060,无法连接到代理)
- postgresql - 更新列详细信息时 PostgreSQL 序列不工作
- php - 如何使用 PHP 脚本扫描本地目录
- c# - 在 CodeBehind 上调用由 LinkButton 操作的函数(ASP.net,C#)
- c# - 为什么具有带有类型参数 P 的通用结构字段的结构 P 会导致 TypeLoadException
- ios - 尝试为应该调整字符串的属性制作包装器
- c# - Bad SemaphoreSlim 性能使用大量信号量
- python - 在 pandas 数据框中查找连续天数
- batch-file - 如何通过批处理命令确定特定的 Windows shell 文件夹是否打开
- sql - 如何在where子句中使用列别名