凡是玩弄nodejs的人,都明白,每一个模块都有exports.module.require.__filename.__dirname的方法 清楚了解方法的用法后,玩转node就等于清楚了日常讲话的内容 (function(exports,require,module,__filename,__dirname){ //打印一出,所有模块的类型和值一目了然 console.log("exports:",exports); console.log("__dirname:"…
1.看官方文档 https://docs.python.org/3/search.html?q=os&check_keywords=yes&area=default 2.看源码 3.dir() import requests,os,randomprint(dir(random)) # ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', # 'TWOPI', '_Bu…
Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.maiziedu.com/course/694/有所帮助. 如果不是和命令行工具打交道,可能我们很少有机会去用到process模块中的一些方法或者属性.不过如果你要做类似于webpack或者gulp等较为复杂的构建工具,由于bash界面就是和用户直接交流的工具,因此友好的输入输出,完整的提示都非常有必…
这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: 1 Map logic to route parameters. 大概意思就是路由参数的映射逻辑 这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序 再看看源码里面的介绍: 1 2 3 Map the given param placeholder `name`(s) to the given…
exports是module.exports的引用,即var exports = module.exports.在一个模块的开头,这两个值都指向同一个空对象:exports = module.exports={}.所以,exports只是后者的引用.这篇文章中,我们将通过三个例子,探究这两者的关系和区别. 一. 模块默认返回的是module.exports,即便你在自定义的模块中明确写出return exports,真正返回的仍然是module.exports.例如: //a.js var a…
在Node.js中,使用module.exports.f = ...与使用exports.f = ...是一样的,此时exports就是module.exports的一种简写方式.但是,需要注意的是,如果直接给exports赋值的话,exports就与module.exports没有任何关联了,比如: exports = { hello: false }; // Not exported, only available in the module 此时,exports是没有导出任何变量的. 要弄…
一个node模块,为了能够服用,就需要将其暴露,那么如何正确写呢?(参考:https://developer.mozilla.org/zh-CN/docs/Learn/Server-side/Express_Nodejs/Introduction) [正确写法A] exports.area = width => { return width * width; }; exports.perimeter = width => { return 4 * width; }; [正确写法B] modul…
前面的话 Node在实现中并非完全按照CommonJS规范实现,而是对模块规范进行了一定的取舍,同时也增加了少许自身需要的特性.本文将详细介绍NodeJS的模块实现 引入 nodejs是区别于javascript的,在javascript中的顶层对象是window,而在node中的顶层对象是global [注意]实际上,javascript也存在global对象,只是其并不对外访问,而使用window对象指向global对象而已 在javascript中,通过var a = 100:是可以通过w…
在其他高级语言中,都有模块中这个概念,比如java的类文件,PHP有include何require机制,JS一开始就没有模块这个概念,起初,js通过<script>标签引入代码的方式显得杂乱无章,语言自身也缺乏组织和约束能力,所以人们不得不以各种命名空间等方式认为的约束代码,达到安全易用的目的.经历十几年的发展,js也执行起了响应的规范,commonJS规范的提出算是一个重要的里程碑. 一.commonJS规范 commonJS规范的愿景是希望JavaScript能在任何地方上运行,出发点主要…
前言: Node在实现中并非完全按照CommonJS规范实现,而是对模块规范进行了一定的取舍,同时也增加了少许自身需要的特性.本文将详细介绍NodeJS的模块实现 引入 nodejs是区别于javascript的,在javascript中的顶层对象是window,而在node中的顶层对象是global [注意]实际上,javascript也存在global对象,只是其并不对外访问,而使用window对象指向global对象而已 在javascript中,通过var a = 100:是可以通过wi…
Node在实现中并非完全按照CommonJS规范实现,而是对模块规范进行了一定的取舍,同时也增加了少许自身需要的特性.本文将详细介绍NodeJS的模块实现 引入 nodejs是区别于javascript的,在javascript中的顶层对象是window,而在node中的顶层对象是global [注意]实际上,javascript也存在global对象,只是其并不对外访问,而使用window对象指向global对象而已 在javascript中,通过var a = 100:是可以通过window…
我们知道,Node.js 选用 JavaScript 语言来编写代码.JavaScript 这门语言呢,之前主要用于前端应用,并没有相应的模块管理功能,而是以 script 标签为单位,直接引入即可运行.Node.js 主要运行在后端,这怎么办呢?好在它借鉴了 CommonJS 中的 Modules 规范,实现了一套易用的模块系统.今天,我们就来介绍一下 Node.js 中的模块. 举个栗子 下面我们写一段代码,封装一个模块,这个模块包含一个方法,对指定的人返回一句问候语: // greetin…
模块的循环加载 如果发生模块的循环加载,即A加载B,B又加载A,则B将加载A的不完整版本. // a.js exports.x = 'a1'; console.log('a.js ', require('./b.js').x); exports.x = 'a2'; // b.js exports.x = 'b1'; console.log('b.js ', require('./a.js').x); exports.x = 'b2'; // main.js console.log('main.j…
菜单快捷导航: CommonJS 之 exports和require用法 ES6 Module 之 export 和 import 用法 CommonJS和ES6 Module的区别 循环依赖 和 解决办法 模块打包原理简析 1.CommonJS 之 exports和require用法 CommoneJS规定每个文件是一个模块.将一个JavaScript文件直接通过script标签引入页面中,和封装成CommonJS模块最大的不同在于:前者的顶层作用域是全局作用域,在进行变量及函数声明时会污染全…
自 13.2.0 版本开始,Node.js 在保留了 CommonJS(CJS)语法的前提下,新增了对 ES Modules(ESM)语法的支持. 天下苦 CJS 久已,Node 逐渐拥抱新标准的规划当然值得称赞,我们也会展望未来 Node 不再需要借助工具,就能打破两种模块化语法的壁垒-- 但实际上,一切没有想象中的那么美好. 一.并不完美的 ESM 支持 1.1 在 Node 中使用 ESM Node 默认只支持 CJS 语法,这意味着你书写了一个 ESM 语法的 js 文件,将无法被执行.…
模块加载痛点 大家也或多或少的了解node模块的加载机制,最为粗浅的表述就是依次从当前目录向上级查询node_modules目录,若发现依赖则加载.但是随着应用规模的加大,目录层级越来越深,若是在某个模块中想要通过require方式以依赖名称或相对路径的方式引用其他模块就非常麻烦,影响开发效率和美观. 示例demo: // 当前目录: /usr/local/test/index.js // gulp模块所在路径为 /usr/lib/node_modules var gulp = require(…
express 标签(空格分隔): node.js express [TOC] 安装: 新版本中命令行工具分家了 npm install -g express //安装 express 然后 npm install -g express-generator //安装 express 命令行工具 express -V 我现在查看到的版本是 4.9.0 npm start 代替 node app.js 启动 http.Server var http = require(‘http’); var se…
由于本文只是实现其原理,所以没有使用数据库,只是在js里面模拟数据库,当然是种中还是需要用数据库的. 1.node.js原生方法 ①html页面,非常简单,没有一丝美化~我们叫它user.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>user</title> </head> <body> 用户:<inp…
深入了解Node模块原理 当我们编写JavaScript代码时,我们可以申明全局变量: var s = 'global'; 在浏览器中,大量使用全局变量可不好.如果你在a.js中使用了全局变量s,那么,在b.js中也使用全局变量s,将造成冲突,b.js中对s赋值会改变a.js的运行逻辑. 也就是说,JavaScript语言本身并没有一种模块机制来保证不同模块可以使用相同的变量名. 那Node.js是如何实现这一点的? 其实要实现"模块"这个功能,并不需要语法层面的支持.Node.js也…
Python中的os模块是主要和系统操作相关的模块,在平时的工作中会经常用到,花时间整理了os模块的高频使用方法,同时整理出使用时需要注意的点.归纳来讲,os模块的方法可以分为:目录操作.文件操作.路径操作.系统操作等四大类,我们接下来依次进行介绍. 目录操作相关 创建.删除.重命名目录 # 当前目录下创建目录,注意第二个参数mode,在Windows被忽略 os.mkdir("test_folder") # 删除目录,如果目录不为空,则抛出OSError:[Errno 66] Dir…
对于所有对象都通用的方法,即Object类的所有非final方法(equals.hashCode.toString.clone和finalize)都有明确的通用约定,都是为了要被改写(override)而设计的. 七.在改写equals的时候请遵循约定 一个类的每个实例实质上都是唯一的.对于代表了实体活动实体而不是值(value)的类,确实是这样的,比如Thread.Object所提供equals实现对于这些类是正确的. 不关心一个类是否提供了“逻辑相等(logical equality)”的测…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4255581.html 第三章      对所有对象都通用的方法 8.            覆盖equals时请遵守通用约定 如果类具有自己特定的"逻辑相等"概念(不同于对象等同概念)…
摘要:__new__ __del__ __call__ __len__ __eq__ __hash__ import json 序列化模块 import pickle 序列化模块 补充: 现在我们都应该知道一个对象的类型(type)就是创建这个对象的类, 而类也是被创建出来的,那么类的类型(type)也是创建这个类的类型, 创建类的是type元类,所以没有指定mateclass的类的type就是type, 指定了mateclass的类的type就是指定的mateclass的值. 例如: from…
events 模块只提供了一个对象: events.EventEmitter. [EventEmitter 的核心就是事件触发与事件监听器功能的封装.] EventEmitter 的每个事件由一个事件名和若干个参 数组成,事件名是一个字符串,通常表达一定的语义.对于每个事件,EventEmitter 支持 若干个事件监听器.当事件触发时,注册到这个事件的事件监听器被依次调用,事件参数作 为回调函数参数传递. 例子: var events = require('events'); var emit…
module 模块.包:可以认为是一个代码包,package,提供特定的功能(暴露给外界接口,让外界调用) exports 输出.导出:导出模块中的各种类型的变量,以及各种方法,导出之后,才可以被外界访问. require 包含.引入:引入一个模块之后,可以使用模块中导出的各个变量以及方法. npm nodejs包管理:即模块管理,专门用于下载和安装模块,以及模块所需的依赖 示例1--使用module.exports.require 有demo.js和test.js两个文件,处于同级目录下. d…
Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装.第一种方法是从CPAN上下载  您需要的模块,手工编译.安装.第二种方法是联上internet,使用一个叫做CPAN的模块自动完  成下载.编译.安装的全过程. a.手工安装的步骤: 从CPAN下载了DBI模块1.13版的压缩文件DBI-1.13.tar.gz,假设放在/usr/local/src/下.  cd /usr/local/src  解压缩这个文件:  tar xvzf DBI-1.13.tar.gz  这时会新建一…
使用express创建node服务器有两种方法,如下所示: 方法一: var express = require('express'); var app = express(); app.listen(', function () { console.log("The server is running at *: 3000"); }); 这是我们常用的一种创建node服务器的方式. 写vue项目时使用的vue-cli脚手架使用的就是这种创建方式.  方法二: var express…
node.js模块 在node.js开发中一个文件就可以认为是一个模块. 一.node.js模块分类 核心模块Code Module.内置模块.原生模块 fs http path url ... 所有内置模块在安装node.js的时候就已经编译成二进制文件,可以直接加载运行(速读较快) 部分内置模块,在node.exe这个进程启动的时候就已经默认加载了,所以可以直接使用. 文件模块 按文件后缀来分 如果加载时,没有指定后缀名,那么就按照如下顺序依次加载相应模块 1.js 2.json 4.nod…
Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: ​ 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(反射).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. Python面向对象的反射: ​ 通过字符串的形式操作对象相关的属性.python中的一切事物都…
第十单元(children的深入用法-React.Children对象上的方法) #课程目标 理解什么是children 掌握React.Children对象上的方法 #知识点 什么是children  上图中我们看到了,我们之前学过的React.createElement方法,现在大家发现jsx的内容,全部都体现在了该方法上:那么React.createElement其实是有三个参数的,第三个参数被称之为children,也就是子元素:看下图:  这个时候,第三个参数也体现出来了: 那么我们可…