博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node学习2-基础知识/HelloWorld/模块调用/global/process
阅读量:6686 次
发布时间:2019-06-25

本文共 1720 字,大约阅读时间需要 5 分钟。

编辑器使用Visual Studio Code

在编辑器下方就继承了终端,可以直接看输出,非常好用

 

CommondJS规范

就是一个规范而已

模块化,因为不可能把代码都放一块,太多了。只需要实现模块化,需要什么模块的代码直接声明和使用。

Nodejs里面会有很多模块。

 

比如上面这个代码,虽然只有一行,但是Nodejs帮我们加了一些东西

 

 

每个文件是一个模块,有自己的作用域

在模块内部moudle变量代表模块本身

moudle.exports代表模块对外接口

exports就是moudle.exports的快捷方式

 

require 引用其他模块的规则

/ 绝对路径

./相对于当前文件

没有拓展名的话,会依次尝试js/json/node

 

 

模块的例子

02_run.js

console.log('this is a module');const testVar = 100;function test(){    console.log('Hello World');}// 定义向外输出的东西module.exports.testVar = testVar;module.exports.testFn = test;

 

调用模块

const mod = require('./02_run.js');//mod.testFn这个是变量名//mod.testFn()才是函数调用mod.testFn();console.log(mod.testVar);

 

 

require特性

1、第一次会加载(执行该模块所有语句),以后会缓存

2、循环加载,ArequireB,BrequireA,在Nodejs里面不会死锁。

它会输出已经执行的部分,没有执行的不会输出(这一步就意味着它不会继续纠结没完成的东西了,所以不会死锁)。

但是最后都会完全加载完毕(执行到最后一句)。

所以写代码不要这样写

 

调用系统内置模块

fs:file system

 

会提醒你,回调函数所需的参数

虽然自己也应该记住

const fs = require('fs');

//读取自己,神奇吧//文件路径//回掉函数,也就是读取完之后会处理的操作(事件驱动)//箭头函数fs.readFile('./fs_run.js',(err,data)=>{    if(err){        console.log(err);    }else{        console.log(data);     }});console.log('Hello');

 

可以看见,Hello会先输出。

因为程序根本没有等I待/O,而是直接执行后面的语句。IO完成后再执行回调函数。

//这样就能转换为字符串了data.toString()

 

调用第三方模块

先安装,例如chalk

 

文件夹下会多出一个文件夹node_moudles(存放该项目的依赖,以及依赖的依赖)

chalk也依赖了别的模块

 

const chalk = require('chalk');console.log(chalk.red('Hello World'));console.log(chalk.yellow('Hello World'));console.log(chalk.green('Hello World'));

 

 

 

 

global全局对象

 

//在一个模块里面给global添加了成员global.test = 100;//别的文件引用了这个模块之后//可以直接console.log(test)//不需要exportxxx

 

 

process当前执行的进程

//注意下列的语法//从对象里面抽取数据const {argv,argv0,execArgv,execPath} = process;//遍历,箭头表达式argv.forEach(element => {    console.log(element)});console.log(execArgv);console.log(execPath)

 

转载于:https://www.cnblogs.com/weizhibin1996/p/9284710.html

你可能感兴趣的文章
ORACLE存储之NUMBER类型
查看>>
空间数据库学习笔记(五):可编程性
查看>>
Cookie乱码解决方法
查看>>
解决“System.Diagnostics.Process调用批处理运行powershell.exe”的问题
查看>>
最聪明的人是最笨的!——《潜伏》在办公室(完整版)之十二(陆琪作品)...
查看>>
C# 视频监控系列(14):总结贴——VC++代码转成C#小结
查看>>
转 Android开发环境搭建全程演示(jdk+eclip+android sdk)
查看>>
内存不足引起的SIGKILL:一个缓冲区不断增长问题的定位与解决(解释SIGKILL原因)...
查看>>
T-SQL查询笔记1:当使用联接时on和where子句的区别
查看>>
第4章 Notification与状态栏信息
查看>>
Linq To Object 示例
查看>>
1. asp.net实现单点登陆
查看>>
【英语天天读】优秀的标准
查看>>
童话世界整理------“说说”
查看>>
.Net 中的反射(动态创建类型实例) - Part.4
查看>>
开发者经常用到的75 个功能强大的 jQuery插件和教程汇总(上篇)
查看>>
.net 匹配所有标点符号 java 匹配所有标点符号
查看>>
GitHub项目Storm-HBase介绍
查看>>
自己写平方根squareroot函数
查看>>
XML基础
查看>>