Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “电子错误”;";路径“;参数的类型必须为string";在控制台中_Javascript_Electron - Fatal编程技术网

Javascript “电子错误”;";路径“;参数的类型必须为string";在控制台中

Javascript “电子错误”;";路径“;参数的类型必须为string";在控制台中,javascript,electron,Javascript,Electron,electron应用程序代码来自《跨平台桌面应用程序》一书,它旨在向浏览器显示用户文件目录,就像在桌面资源管理器应用程序中一样 const os = require('os'); const fs = require('fs'); const path = require('path'); const async = require('async'); function getHomeFolder (){ return os.homed

electron应用程序代码来自《跨平台桌面应用程序》一书,它旨在向浏览器显示用户文件目录,就像在桌面资源管理器应用程序中一样

    const os = require('os'); 
    const fs = require('fs');
    const path = require('path');
    const async = require('async');
  


    function getHomeFolder (){
    return os.homedir();
    }
    function retrieveFiles (folderPath,cb) {
       fs.readdir(folderPath,cb);
    }


    function inspectAndDescribeFiles (filepath,cb) {
    let result = {
        file:path.basename(filepath),
        path:filepath,type:''
    };
    fs.stat(filepath,(err,stat) =>{
        if(err){
            cb(err);
        }else{
            if(stat.isFile()){
                result.type = 'file';
            }
            if(stat.isDirectory()){
                result.type = 'directory';
            }
            //cb(err,result);
        }  
    });
    }
    function inspectAndDescribeFiles(folderPath,files,cb){
        async.map(files,(file,asyncCb) => {
            let resolvedFilePath = path.resolve(folderPath,file);
            inspectAndDescribeFiles(resolvedFilePath,asyncCb);
        },cb);
    }
    function displayFileIcons (file){
    const mainArea = document.getElementById('main-area');
    //const template = document.querySelector('item-template');
    //let clone = document.importNode(template.content, true);
    const img = document.querySelector('img').src = './assets/foldericon.png';
    const fileImg = document.querySelector('.filename').innerText =file.file;
    //clone.querySelector('img').src =`assets/${file.type}.png`;
    //clone.querySelector('.filename').innerText =file.file;
    mainArea.appendChild(img);
    }
    function displayFiles (err,files){
    if(err){
        return alert("Sorry we couldn't display your files");
    }
    //files.forEach((file)=>{console.log(file); });
    files.forEach(displayFileIcons);
    }
    function main () {
    const folderPath = getHomeFolder();
    retrieveFiles(folderPath,(err,files) => {
       if(err) {
           return alert('Sorry we could not load your home folder');
       }
     //    files.forEach((file) => {
          
     //     console.log(`${folderPath}/${file}`);
     //    });
     inspectAndDescribeFiles(folderPath,files,displayFileIcons);
     });
     }
     main();

打印到开发人员工具控制台时出现的错误为“Uncaught(in promise)TypeError[ERR\u INVALID\u ARG\u TYPE]:“path”参数必须是字符串类型。未定义接收。我做错了什么?

此行:
检查和描述文件(resolvedFilePath,asyncCb);
检查和描述文件
接受三个参数,而不是两个