1、CommonJS

  我们只是在js文件中写下console.log('This is a test.');这句代码,node.js执行该js文件时:

(
function(exports, require, module, __filename, __dirname) {
console.log('This is a test.');
}
);

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

  - 在模块内部module变量代表模块本身

  - module.exports属性代表模块对外接口

2、require特性

  - module被加载时执行,加载后缓存

  - 一旦出现某个模块被循环加载,就只会输出已经执行的部分,还未执行的部分不输出。开发中要避免两个模块相互加载。

3、node.js将全局属性和方法挂到global上

  - CommonJs

  - Buffer、process、console

  - timer(setTimeout、setImmediate等)

4、process进程

  - node启动相关一些参数:argv、argv0、execArgv、execPath

  argv, argv0: 命令行参数,argv0就是argv数组的第一个值

const { argv, argv0, execArgv, execPath } = process;

argv.forEach(item => {
console.log(item);
});

  

  execArgv: 执行参数 ,比如--inspect

const { argv, argv0, execArgv, execPath } = process;

argv.forEach(item => {
console.log(item);
}); console.log(argv0);
console.log(execArgv);

  环境变量 env

const { env } = process;
console.log(env);

  结果:

{ '#envTSLOGSHELLEXT10724': '351103568',
'#envTSLOGsss10724': '80627808',
'#envTSLOGTSLOG10724': '80616288',
ALLUSERSPROFILE: 'C:\\ProgramData',
APPDATA: 'C:\\Users\\oy\\AppData\\Roaming',
CommonProgramFiles: 'C:\\Program Files\\Common Files',
'CommonProgramFiles(x86)': 'C:\\Program Files (x86)\\Common Files',
CommonProgramW6432: 'C:\\Program Files\\Common Files',
COMPUTERNAME: 'LAPTOP-SHVUJ9TS',
ComSpec: 'C:\\WINDOWS\\system32\\cmd.exe',
DriverData: 'C:\\Windows\\System32\\Drivers\\DriverData',
FPS_BROWSER_APP_PROFILE_STRING: 'Internet Explorer',
FPS_BROWSER_USER_PROFILE_STRING: 'Default',
HOMEDRIVE: 'C:',
HOMEPATH: '\\Users\\oy',
JAVA_HOME: 'D:\\JavaDevelop\\jdk1.8.0_111',
LOCALAPPDATA: 'C:\\Users\\oy\\AppData\\Local',
LOGONSERVER: '\\\\LAPTOP-SHVUJ9TS',
MYSQL_HOME: 'D:\\JavaDevelop\\mysql-5.1.69-winx64',
NUMBER_OF_PROCESSORS: '8',
OneDrive: 'C:\\Users\\oy\\OneDrive',
OneDriveConsumer: 'C:\\Users\\oy\\OneDrive',
OS: 'Windows_NT',
Path:
'C:\\Users\\oy\\AppData\\Roaming\\npm;D:\\DevTools\\php-5.6.40-Win32-VC11-x64;D:\\JavaDevelop\\mysql-5.1.69-winx64\\bin;D:\\JavaDevelop\\jdk1.8.0_111\\bin;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;D:\\DevTools\\nodejs\\;C:\\Users\\oy\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\oy\\AppData\\Roaming\\npm;',
PATHEXT: '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL',
PHP_HOME: 'D:\\DevTools\\php-5.6.40-Win32-VC11-x64',
PROCESSOR_ARCHITECTURE: 'AMD64',
PROCESSOR_IDENTIFIER: 'AMD64 Family 23 Model 17 Stepping 0, AuthenticAMD',
PROCESSOR_LEVEL: '23',
PROCESSOR_REVISION: '1100',
ProgramData: 'C:\\ProgramData',
ProgramFiles: 'C:\\Program Files',
'ProgramFiles(x86)': 'C:\\Program Files (x86)',
ProgramW6432: 'C:\\Program Files',
PSModulePath:
'C:\\Users\\oy\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules',
PUBLIC: 'C:\\Users\\Public',
SESSIONNAME: 'Console',
SystemDrive: 'C:',
SystemRoot: 'C:\\WINDOWS',
TEMP: 'C:\\Users\\oy\\AppData\\Local\\Temp',
TMP: 'C:\\Users\\oy\\AppData\\Local\\Temp',
USERDOMAIN: 'LAPTOP-SHVUJ9TS',
USERDOMAIN_ROAMINGPROFILE: 'LAPTOP-SHVUJ9TS',
USERNAME: 'oy',
USERPROFILE: 'C:\\Users\\oy',
windir: 'C:\\WINDOWS' }

5、setImmediate

// 下个队列
setImmediate(() => {
console.log('setImmediate');
}); setTimeout(() => {
console.log('setTimeout');
});
// 当前队列的队尾
process.nextTick(() => {
console.log('nextTick');
}); // 结果:
nextTick
setTimeout
setImmediate

node.js之CommonJS的更多相关文章

  1. Node.js,commonjs,require

    环境: Node应用由模块组成,采用CommonJS模块规范. node的全局对象是global,没有window这个对象. process表示当前执行的进程,挂在global之下. CommonJS ...

  2. Node.js相关——CommonJS规范

    1. CommonJS规范产生背景 在后端,JavaScript的规范远远落后并且有很多缺陷,这使得难以使用JavaScript开发大型应用.比如: 没有模块系统 标准库较少 没有标准接口 缺乏包管理 ...

  3. Node.js学习笔记

    相关介绍 1.Node.js或者Node,是一个可以让javascript运行在服务器端的平台. 2.Node.js是一个为实时Web应用开发而诞生的语言,它从诞生之初就充分考虑了再实时响应.超大规模 ...

  4. node.js不得不说的12点内容

    1.node.js,服务器端的javascript,它允许在后端(脱离浏览器环境)运行javascript代码. 2.事件驱动.异步式I/O的编程模式(单线程)是其核心. 3.node.js的java ...

  5. Node.js的核心与红利(zz)

    唯有明晰历史,才能了然当下,预知未来.作者从历史角度解读Node.js,帮助读者透过猜忌和谣言,看清真实的Node.js,了解Node.js的核心与红利. 令人惴惴不安的Node.js 我们越来越频繁 ...

  6. node.js入门及express.js框架

    node.js介绍 javascript原本只是用来处理前端,Node使得javascript编写服务端程序成为可能.于是前端开发者也可以借此轻松进入后端开发领域.Node是基于Google的V8引擎 ...

  7. 使用Node.js作为后台进行爬虫

    看了一遍又一遍Node.js但是没过多久就又忘了,总想找点东西来练练手,就发现B站首页搜索框旁边的GIF图特别有意思,想着是不是可以写一个小Node.js项目把这些图全部扒下来,于是带着复习.预习与探 ...

  8. Node.js学习笔记(二):模块

    模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的.一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码.JSON 或者编译过的 C/C++ 扩展. ...

  9. node.js零基础详细教程(2):模块化、fs文件操作模块、http创建服务模块

    第二章  建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...

随机推荐

  1. wtforms 简单使用

    from flask import Flask,request,render_template from wtforms import Form,StringField from wtforms im ...

  2. unsigned char 与unsigned long互换

    unsigned long UCharToULong(unsigned char * pucVar ){unsigned long ulTemp=0;ulTemp=(unsigned long)(*p ...

  3. SQL语句规范

    SQLStructure Query Language,结构化查询语言 1.规范(1)mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写 show databases;show DataB ...

  4. [python] super() 用法

    问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如下: class A: def __init__(self): print & ...

  5. [转帖]全方位掌握OpenStack技术知识

    全方位掌握OpenStack技术知识 http://www.itpub.net/2019/06/17/2206/ 架构师技术联盟的文章 相当好呢. 大家好,我是小枣君.最近几年,OpenStack这个 ...

  6. linux下显示完整路径,linux下显示绝对路径

    linux下,命令行显示路径仅最后一个文件名,非常不方便,想显示完整路径.环境背景:linux,无root权限,可sudo(为了服务器安全,一般只给管理员root账号和密码,普通账号仅sudo权限)方 ...

  7. MySQL日期时间函数大全

    1.获取当前时间+日期 函数now() mysql> select now(); +---------------------+ | now() | +--------------------- ...

  8. 基于apache-commons-email1.4 邮件发送

    MailUtil.java package com.lucky.base.common.util; import com.zuche.framework.utils.PropertiesReader; ...

  9. Zookeeper报错Will not attempt to authenticate using SASL解决办法

      版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq642159746/article/ ...

  10. JSTL标签+El表达式把list集合数据展示到 JSP页面

    JSP页面 <%@ page import="cn.itcast.domain.User" %><%@ page import="java.util.L ...