JavaScript Node.js核心API &&npm

核心API

获取指定文件所在的目录
console.log(__dirname);//C:\Users\11267\Desktop\学习\JS二阶段\day16\f80\2.NodeJS核心\lession
​
获取指定文件所在的绝对路径
console.log(__filename);//C:\Users\11267\Desktop\学习\JS二阶段\day16\f80\2.NodeJS核心\lession\index.js
​
获取当前文件所在的目录,绝对路径
console.log(process.cwd());//C:\Users\11267\Desktop\学习\JS二阶段\day16\f80\2.NodeJS核心\lession
​
强制退出当前node进程,参数0表示成功退出,1表示其他原因退出
console.log(process.exit(0));
​
获取命令中的所有参数,是字符串类型
console.log(process.argv);
/* [
   'D:\\xx\\node.exe',
    'C:\\Users\\11267\\Desktop\\学习\\JS二阶段\\day16\\f80\\2.NodeJS核心\\lession\\index.js'
 ] */
​
获取当前的操作系统
console.log(process.platform);//win32
​
获取环境变量对象
 console.log(process.env);
​
在Nodejs中获取内置对象,然后可以使用对象身上的方法
let path = require("path");
​
获取路径中文件名,最后一部分
let suffix = path.basename("/Users/yingside/index.html");
console.log(suffix);//index.html
​
获取分隔符
console.log(path.delimiter);//;
​
获取分隔符
console.log(path.sep);//\
​
console.log("c:\\asd\\adas");//c:\asd\adas
​
将路径片段形成完整的路径
console.log(path.join(__dirname,"/public"));//C:\Users\11267\Desktop\学习\JS二阶段\day16\f80\2.NodeJS核心\lession\public
​
将路径片段形成一个绝对路径
 console.log(path.resolve(__dirname,"/public"));//C:\public
​
在Nodejs中获取内置对象,然后可以使用对象身上的方法
let os = require("os");
​
获取主机名
console.log(os.hostname());//LAPTOP-VFAAL79J
​
获取当前的操作系统
console.log(os.platform());//win32
​
主机CPU架构
console.log(os.arch());//x64
​
主机CPU信息
 console.log(os.cpus());
​
剩余内存数量
console.log(os.freemem());//8987058176
​
在Nodejs中获取内置对象,然后可以使用对象身上的方法
let fs = require("fs");
let path = require("path");
 let p = path.join(__dirname,"/public/")
​
 fs.writeFile("test.txt","aaa",(err)=>{ //写文件
     if(err) {console.log(err);}
     else {console.log("success!");}
 })
​
文件读取是一个流,因为包含视频、图片等内容,如果需要读取文本类内容,在第二个参数为"utf-8"
 fs.readFile('test.txt', "utf-8",(err, data) => {//读文件
     if (err) throw err;
     console.log(data);
 });
​

练习:文件的读取和写入

//获取内置对象
let fs = require("fs");
let path = require("path");
let fromPath = path.join(__dirname,"/img/11.png");
let toPath = path.join(__dirname,"/img/2.png");
/* 第一种 回调地狱 */
// fs.readFile(fromPath,(err,data)=>{
//     if(err) {
//         console.log(err);
//     }
//     else{
//         fs.writeFile(toPath,data,(err)=>{
//             if(err) {
//                 console.log(err);
//             }
//             else{
//                 console.log("success!");
//             } 
//         })
//     }
// })
​
/* 文件读取是一个流,因为包含视频、图片等内容,如果需要读取文本类内容,在第二个参数为"utf-8" */
​
/* 第二种 promises */
async function fileCopy(){
    try{
        let buffer = await fs.promises.readFile(fromPath);//成功
        await fs.promises.writeFile(toPath,buffer);//写入
        console.log("success");
    }catch(err){
        console.log(err);
    }
}
​
fileCopy();

npm包管理

爬虫练习

1、初始化包 npm init

2、下载依赖

3、具体代码

/* 在网页上拿文字图片 */
let axios = require("axios");//引入内置对象
let cheerio = require("cheerio");
const { log } = require("console");
let fs = require("fs");
​
async function getMovies(){
    let resp = await axios.get("https://movie.douban.com/chart");//得到整个网页的代码
    return resp.data;//返出整个代码的data部分
}
​
async function getMovieData(){
    let htmlStr = await getMovies();//得到返出整个代码的data部分
    let $ = cheerio.load(htmlStr);//把得到的代码转成字符串
    let trs = $("tr.item");//得到所有的tr
    let movies = [];
    [...trs].forEach((tr)=>{//把trs结构成数组,遍历数组的每一个tr
        let name = $(tr).find("div.pl2 a").text();//方法find找到一个div类名是pl2,然后里面的a标签的文本内容
        name = name.replace(/\s/g,"").split("/")[0];//利用正则去掉空格然后以/分隔成数组取第一个  /\s/g,""   \s是空格 g是全部  换成空字符串   
        let imgPath = $(tr).find("a.nbg img").attr("src");//方法find找到一个a类名是nbg,然后里面的img标签的属性src 得到图片路径
        let scort= $(tr).find("span.rating_nums").text();//方法find找到一个span类名是rating_nums,然后里面的文本内容
        let stars= $(tr).find("p.pl").text().split("/");//方法find找到一个p类名是pl,然后里面的文本内容,以/转为数组
      stars=stars.slice(3,stars.length-6).join(',');//截取数组并转字符串
        // console.log(stars);
        movies.push({//以对象类型加进数组
            name,
            imgPath,
            scort,
            stars,
        })
    })
    return movies;
}
​
getMovieData().then((movies)=>{//得到返出值并执行打印
    movies.forEach(m => {    
        console.log(m);
    })
    /* 写入文件 */
let str=JSON.stringify(movies);//把整个数组转成字符串
fs.writeFile('./index.json',str,"utf-8",(err)=>{//调用fs的方法(写入的路径,没有则新建一个,写入的内容,写入文本信息,执行函数),失败怎么样,成功怎么样
    if(err) console.log('失败');
    else console.log('成功');
})
});

结果

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值