模块module

一:模块module

每个js文件就是一个模块,每个模块都有一个初始化对象moudlemoudle是一个数组)

二:父模块引用子模块:

(1) Require(“路径”): 得到一个module对象

//1.先要导入模块(导入后是常量,故用const)
const md1=require("./module02");
                 //相对路径./路径  : 当前路径寻找
const md2= require("module03");
                //直接写模块名  :  1)node_modules目录下的模块  2)找系统模块

(2) 通过得到的模块对象moudleexport属性传递数据

module.exports = {
    a:a,
    test:test
}

(3) 调用

console.log("打印module02里面的a1:"+md1.a1);

三:模块与模块之间的传值方式:

通过当前模块moudle的第一个子模块children[0]export属性:就可以直接拿到val值了。Moudle.children[0].export.val,与上面的md1.a1等同,指向一致。

四:Moudle里的是一个数组;export里的是json对象

Module {

  id: '.',

  exports: { a: 100, test: [Function: test] },

  parent: null,

  filename: 'e:\\HBuilder文件\\nodejs学习\\module\\node_modules\\module03.js',

  loaded: false,

  children: [],

  paths:

   [ 'e:\\HBuilder文件\\nodejs学习\\module\\node_modules',

     'e:\\HBuilder文件\\nodejs学习\\node_modules',

     'e:\\HBuilder文件\\node_modules',

     'e:\\node_modules'

]

 }

五:系统模块global

(1) __dirname:拿到当前文件所在的目录,不包括文件名

console.log(__dirname);   

输出:e:\HBuilder文件\nodejs学习\module

 

(2) __filename:拿到文件的全路径

console.log(__filename);

输出:e:\HBuilder文件\nodejs学习\module\module02.js

(3) setInterval():定时器

(4) SetTimeout():指定时间间隔循环执行

(5) SetImmediate():异步执行某个函数

六:系统模块process

(1) 进程对象,控制系统基本操作

(2) stdin:输入,要结合on事件

process.stdin.on("data",function(chunk){
    //打印客户输入的内容
    
console.log(chunk.toString());
})

(3) stdout:输出

//process对象的stdout属性的write()方法:输出,不带回车换行
process .stdout.write("欢迎进入华信登陆系统\r\n");

(4) exit:退出整个程序

(5) argv:扫描数据

process.argv.forEach(function(val,index){
    console.log(`${index}:${val}`)
})

在窗口中运行结果:

E:\HBuilder文件\nodejs学习\module> node module02 一 二 三

0:C:\Program Files\nodejs\node.exe

1:E:\HBuilder文件\nodejs学习\module\module02

2:一

3:二

4:三

七:Require第一次加载模块的时候,会在缓存区缓存,以便下次使用,提高效率。

(1) 获取缓存:require.cache   得到的也是json对象

(2) 清除缓存:delete require.cache[name]  缓存逐个删除

//用json模拟数据库存储账号和密码
const persons = {
    user1:"pwd1",
    user2:"pwd2",
    user3:"pwd3"
}
//Object.keys():可以得到由对象属性名组成的数组
console.log(Object.keys(persons));
//输出:[ 'user1', 'user2', 'user3' ]

(3) Foreach()

//Object.keys(require.cache)拿到所有的键,再用所有的键去foreach遍历
Object
.keys(persons).forEach(function(element){
    console.log("键名:"+element+"     键值: "+persons[element]);
})

输出:

键名:user1     键值: pwd1

键名:user2     键值: pwd2

键名:user3     键值: pwd3

(4) 清除缓存:

Object.keys(require.cache).forEach(function(element){
    delete require.cache[element];

})

八:Path模块:

(1) Join(“”,””,””):里放不定个路径参数,实现路径拼接,获取新的路径

const m = require("path");
console.log(m.join("D:\\webstorm软件安装\\WebStorm 9.0.3\\bin","runnerw.exe"));

输出:D:\webstorm软件安装\WebStorm 9.0.3\bin\runnerw.exe

(2) Dirname(“路径”); :获取指定路径的父文件夹路径

console.log(m.dirname("D:\\webstorm软件安装\\WebStorm 9.0.3\\bin\\runnerw.exe"));

输出:D:\webstorm软件安装\WebStorm 9.0.3\bin

(3) 注意区分:__dirnameglobal的属性;dirnamepath的函数;

(4) m.extname(“路径”); : 得到后缀名

(5) m.parse(“路径”); :获得一个json对象,包括所有的内容。

console.log(m.parse("D:\\webstorm软件安装\\WebStorm 9.0.3\\bin\\runnerw.exe"));

输出:

{ root: 'D:\\',

  dir: 'D:\\webstorm软件安装\\WebStorm 9.0.3\\bin',

  base: 'runnerw.exe',

  ext: '.exe',

  name: 'runnerw'

 }

(6) m.parse(“路径”).dir :(可以直接用这种方法将上面五个遍历出来)

console.log(m.parse("D:\\webstorm软件安装\\WebStorm 9.0.3\\bin\\runnerw.exe").dir);

输出:D:\webstorm软件安装\WebStorm 9.0.3\bin

(7) m.relative(‘路径1’,’路径2’);  得到其相对路径

九:fs模块:

对文件和目录进行操作,对文件夹的文件进行搜索和对文件的数据进行读取和写出。

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值