最近刚刚学nodejs,在学习中遇到一个难题,当我执行命令运行时报path must be a string.Received undefined 网上找了很多方法都没解决,具体情况如下。
以下是程序代码
index.js
const request = require('request');
const path = require('path');
const fs = require('fs');
const config = require('./config');
const analyze = require('./analyze');
function start(){
request(config.url,function(err,res,body){
console.log('start');
if (!err && res) {
console.log('start');
analyze.findImg(body,downLoad);
}
})
}
function downLoad(imgUrl,i){
let ext = imgUrl.split('.').pop();
request(imgUrl).piep(fs.createWriteStream(path.join(config.imgDir,i + '.' + ext),{
'encoding':'utf8'
}))
console.log(i);
}
start();
config.js
const url = "https://www.neusoft.com/cn/";
const path = require('path');
const imDir = path.join(__dirname,'img');
module.exports.url = url;
module.exports.imDir = imDir;
analyze.js
const cheerio = require('cheerio');
function findImg(dom,callback){
let $ = cheerio.load(dom);
$('img').each(function(i,elem){
let imgSrc = $(this).attr('src');
callback(imgSrc,i);
});
}
module.exports.findImg = findImg;
node与npm版本号
用户环境变量配置
系统环境变量配置
项目目录
求大佬帮忙看下,实在没招了,可以的话能把原理说明下更好。