[ERR_INVALID_ARG_TYPE]

时间:2021-06-16 00:16:17

标签: javascript node.js

我一直在接受

<块引用>

TypeError [ERR_INVALID_ARG_TYPE]:“data”参数必须是字符串类型或 Buffer、TypedArray 或 DataView 的实例。接收到一个数组实例

我正在尝试从文件中取出行并在 : 处将它们分开,然后将它们作为两个单独的行放入另一个文件中,然后通过应用程序运行它并根据它们是否工作来分隔这些行。

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)}
                    })
                }
         })
    })
})

1 个答案:

答案 0 :(得分:1)

此块导致错误:

  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

行动

你想要做什么: <块引用>

从文件中取出几行并在 : 处将它们分开并将它们放入 另一个文件作为两个单独的行

您可以通过换行符将数组合并为字符串。

  login = data.split(':').join('\r\n')
                fs.writeFile(conf, login, (err, result) => {