【问题标题】:[ERR_INVALID_ARG_TYPE][ERR_INVALID_ARG_TYPE]
【发布时间】:2021-08-31 19:30:09
【问题描述】:

我不断得到

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

【问题讨论】:

    标签: javascript node.js


    【解决方案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) => {
    

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 1970-01-01
      • 2022-01-05
      • 2020-12-26
      • 2021-11-26
      • 2022-01-10
      • 2020-12-03
      • 2019-08-18
      • 2021-04-16
      相关资源
      最近更新 更多