控制台中的电子错误““路径”参数必须是字符串类型”
Posted
技术标签:
【中文标题】控制台中的电子错误““路径”参数必须是字符串类型”【英文标题】:Electron errors "The "path" argument must be of type string" in the console 【发布时间】:2021-01-27 00:05:04 【问题描述】:《跨平台桌面应用程序》一书中的电子应用程序代码,旨在向浏览器显示用户文件目录,就像在桌面资源管理器应用程序中一样。
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_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined. 我做错了什么?
【问题讨论】:
【参考方案1】:这一行:inspectAndDescribeFiles(resolvedFilePath,asyncCb);
。 inspectAndDescribeFiles
接受三个参数,而不是两个。
【讨论】:
以上是关于控制台中的电子错误““路径”参数必须是字符串类型”的主要内容,如果未能解决你的问题,请参考以下文章
图片上传错误:TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。接收类型未定义
Nrwl:Storybook 给我错误 TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。收到未定义
axios “url”参数必须是字符串类型。收到类型未定义的错误