一、模块的作用 把实现某个功能的函数,放到单独 js 文件中,这个 js 文件就被称模块(module),其他代码只需导入这个 js 文件,即可使用其功能,达到代码复用的目的。...二、全局变量 模块被 Node.js 加载时,会用函数将其进行包裹,所以就有了5个模块内全局变量: // Node.js 包裹模块的函数如下: (function(exports, require,...require : 包含本模块导入其他模块的信息。require.main 等同于 module 。 module :指向当前模块的引用,包含当前模块的路径、目录等信息。...__filename :表示当前模块文件的路径(包含模块文件名的全路径) __dirname :表示当前模块所在文件夹的路径 三、通过实例查看各变量 创建 example.js 文件,复制如下代码到文件中保存...("path.dirname(__filename) : ", path.dirname(__filename)); 四、参考文档 Node.js的模块,有哪些全局变量?
Node.js 的的核心模块 Node为JavaScript提供了很多服务器级别的API,这些API绝大多数都被包装到了一个具名的核心模块中了。...例如文件操作的fs核心模块,http服务构建的http模块,path 路径操作模块、os 操作系统信息模块等 以后只要说这个模块是一个核心模块,就要马上想到如果想要使用它,就必须: var fs = require...(‘fs’) var http = require('http') 在node中文网就可以找到这些模块:http://nodejs.cn/api/ 案例:获取OS的一些信息 // 用来获取机器信息的 var...os = require('os') // 获取当前机器的 CPU 信息 console.log(os.cpus()) 出现了八个模块,代表是八核 ?...上面的单位是字节,除以1024,约等于8G内存大小 案例:获取用来操作路径的信息 // 用来操作路径的 var path = require('path') // 获取一个路径中的扩展名部分 console.log
request模块让http请求变的更加简单。...更多使用方法和说明可点击这里继续阅读:https://github.com/mikeal/request/ 这里写了一个很简单的示例,用来抓取去哪儿网的酒店查询数据(获取酒店某一时间段内各房型的价格排名...,想知道自己在网站上提供给客户的价格的竞争力: 1、如果提供的价格过低,自己赚到的钱就会少了,所以如果自己价格是最低了,就需要看第二低是多少,然后决定是否调整; 2、如果提供的价格过高,那么被搜索出来的排名结果就比较靠后...,没什么客户来预订酒店,业务就没有了 因为做的酒店预订业务很多,比如超过2千家以上,如果一个一个依赖人工去查询排名就比较被动,而且很难再做大,所以他的这个需求我分析了一下是可行的,而且可以做成一个很好的实时预警系统...这样才能保障利润最大化,提高销售、客户部门的工作效率,加快酒店的合作数量和公司的人员扩张: 1、不亏本,亏本的买卖不做; 2、如果发现提供的价格过低或是过高,需要支持调用平台的api接口,直接修改价格;
在写一个工具的时候,需要将xml转为json方便处理,以前电脑上装的node.js的版本为0.8,结果我再安装node-xml2json时提示版本过低,然后我又重装安装了最新版本。...然后再次尝试安装,首先报python版本不对,不支持3.0,然后再降级,再然后说windows系统需要先安装node-expat,装这个模块又需要先装node-gyp,好吧然后我一直安装失败… ?...最后我使用了这个模块: node-xml2json 根据thomasfrank大师写的 XML to JSON 改造的,唯一要注意的是如果xml中的节点属性有大写,转换之后全部成小写了。...工具的功能从本地上传文件至FTP,然后通过外网地址(模拟游戏玩家请求CDN操作)下载一份XML配置,通过配置下载相应的zip包,校验其大小以及CRC 下载zip使用如下的方法: request('http...工具写完了,使用了几个模块,觉得这几个模块都还很不错,有需要的同学可以自取:) 1、node-ftp 操作ftp,上传、下载文件。
作者主页: 作者主页查看更多前端教学 专栏分享:css重难点教学 Node.js教学 从头开始学习 目录 模块的加载机制 优先从缓存中加载 内置模块的加载机制... 自定义模块的加载机制 第三方模块的加载机制 目录作为模块加载 ---- 模块的加载机制 优先从缓存中加载 模块在第一次加载后会被缓存,这也意味着多次调用...内置模块的加载机制 内置模块是由Node.js官方提供的模块,内置模块的加载优先级最高。 意思是说 如果自定义模块,与内置模块同名,则优先会加载内置模块。 .../开头,则Node.js会从当前父级模块开始查找子级node_modules文件夹,然后从里面查找导入的模块名称。...例如 在C:\Users\itheima\project\foo.js 文件里调用了require(‘tools’),则Node.js会按一下顺序查找。
一、Node.js 内置模块(Module) Node.js 内置模块是 Node.js 的顶层API,提供给了访问网络、操作文件等核心功能,npm 里面的模块库就是基于这些顶层 API 的进一步封装...1、查看内置模块 创建 example.js 文件,复制下面代码到文件,终端运行 node example.js ,就可以看到 Node.js 内置的所有模块名。...,但不能新增和删除 用内置模块 fs 作为测试对象,通过修改、删除、新增其内容,之后进行同步,最后用动态导入的方式,导入新的 fs ,进行前后对比。...,在新的模块中依然存在 assert.strictEqual('readFileSync' in esmFS, true); // 新增内容,在新模块中不存在 assert.strictEqual...(esmFS.newAPI, undefined); }); 二、参考文档 Node.js的内置模块说明!
4、系统模块 (1)什么是系统模块 Node运行环境提供的API....因为这些API都是以模块化的方式进行开发的, 所以我们又称Node运行环境提供的API为系统模块 image.png 例:文件模块 (2)系统模板fs文件操作 f:file 文件 ,s:system...require('fs'); 1 读取文件内容 fs.reaFile('文件路径/文件名称'[,'文件编码'], callback); 1 注:callback 为回调函数 示例: // 1.通过模块的名字...fs对模块进行引用 const fs = require('fs'); // 2.通过模块内部的readFile读取文件内容 fs.readFile('./01.helloworld.js', 'utf8...', (err, doc) => { // 如果文件读取出错err 是一个对象 包含错误信息 // 如果文件读取正确 err是 null // doc 是文件读取的结果
在node中的模块,相当于java中的类,模块包含成员变量,成员方法,继承 在下面设计一个user,一个子类tec //这个类在外部的node1.js文件中 function user(id,name,...,可以继承user中的方法: var user=require('....在这里文件的名字可以写后缀.js,也可以不写 function tec(id,name,age){ user.apply(this,[id,name,age]); this.ter...{ //成员方法 res.write(this.name+'讲课'); } } module.exports=tec;//先导出 node调用时的文件.../node1");//导入外部的类 var tec=require(".
在node中的模块,相当于java中的类,模块包含成员变量,成员方法,继承 在下面设计一个user,一个子类tec //这个类在外部的node1.js文件中 function user(id,name...,可以继承user中的方法: var user=require('....在这里文件的名字可以写后缀.js,也可以不写 function tec(id,name,age){ user.apply(this,[id,name,age]); this.ter...{ //成员方法 res.write(this.name+'讲课'); } } module.exports=tec;//先导出 node调用时的文件.../node1");//导入外部的类 var tec=require(".
前言:模块机制是 Node.js 中非常重要的组成,模块机制使得我们可以以模块化的方式写代码,而不是全部代码都写到一个文件里。...我们平时使用的比较多的通过 require 加载模块,但是我们可能不是很清楚 require 的实现原理,另外 Node.js 里存在多种模块类型,加载原理也不太一样,本文将会介绍 Node.js 模块机制以及实现原理...1 模块机制的初始化和使用 1.1 注册 C++ 模块 在 Node.js 启动的时候,会通过 RegisterBuiltinModules 注册 C++ 模块。...,但是我们在Node.js源码里找不到这些函数,因为这些函数是在每个C++模块定义的文件里(.cc文件的最后一行)通过宏定义的。...2.2 用户 JS 模块 我们看到为什么在写代码的时候可以直接使用 require 函数,不是因为 require 是全局变量,而是我们写的代码会被封装到一个函数里执行,require 和 module.exports
http://blog.csdn.net/fxjtoday/article/details/6307285 开发Python, 一直以来都是使用自己编写的logging模块. 比较土.........今天发现python的标准模块的这个功能做的挺好, 记录一下, 以后使用模块来进行logging....对于这个模块的介绍网上也很多, 我也不用自己写了, 比较好的如下, http://crazier9527.iteye.com/blog/290018 Python的标准logging模块 http...logger,所有对这个子logger的调用都会转到父logger里面去,如下所示: 下面这个是主模块的代码, [python] view plaincopy import logging ...appliction的任意地方, 不同的模块中, 可以使用Project的子logger, 如Project.UI, Project.Core, 来进行log, 并且不需要反复的定义和配置各个logger
输入和输出可能分别来自标准输入和标准输出,或者也可能是任何连接到Node.js上的流。...默认情况下,所有的repl.REPLServer实例都使用一个求值函数来计算JavaScript表达式,并且提供Node.js内置模块的访问方式。...Modules 访问核心的Node.js模块 The default evaluator will automatically load Node.js core modules into the...默认的求值程序在有用到时,会自动将Node.js的核心模块加载进REPL的环境中。...): Node.js它自己使用repl模块为执行JavaScript来提供它自己的交互性接口。
shlex模块实现了一个类来解析简单的类shell语法,可以用来编写领域特定的语言,或者解析加引号的字符串。 处理输入文本时有一个常见的问题,往往要把一个加引号的单词序列标识为一个实体。...根据引号划分文本可能与预想的并不一样,特别是嵌套有多层引号时。...一种简单的方法是构造一个正则表达式,来查找引号之外的文本部分,将它们与引号内的文本分开,或者反之。这可能带来不必要的复杂性,而且很容易因为边界条件出错,如撇号或者拼写错误。...更好地解决方案是使用一个真正的解析器,如shlex模块提供的解析器。以下是一个简单的例子,它使用shlex类打印输入文件中找到的token。 #!...另外,孤立的引号(如I'm)也会处理。看以下文件 This string has an embedded apostrophe, doesn't it?
python模块中判断全局变量的赋值 1、在模块中,我们需要判断__name__是否被赋值为“__main__”。...python fibo.py 2、在脚本执行的情况下,模块的__name__属性将被赋值为__main__,这就是原因所在。...$ python fibo.py 50 0 1 1 2 3 5 8 13 21 34 若以模块导入,则不会执行: >>> import fibo >>> 以上就是python模块中判断全局变量赋值的方法
之前用node.js写的订餐系统,很容易挂掉,一直也没想去解决它。今天看了一下,试了试,原因是在连接数据库的时候没有对error事件进行处理,导致程序一直挂在那里,需要重启服务才能正常使用。...在getConnection函数中添加了对error事件的监听,能避免掉这个问题 ?...参考: 在Node.js使用mysql模块时遇到的坑 Reproduce MySQL error: The server closed the connection (node.js)
Events是node.js 最重要的模块,它提供了一个对象events.EventEmitter,EventEmitter 的核心是事件发射与事件监听器。...Node.js中大部分的模块,都继承自Event模块。 EventEmitter 支持若干个事件监听器,当事件发射时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数参数传递。...事件模块相关的方法主要有以下这些: 1. EventEmitter.on(event, listener) 注册监听事件。...触发指定的监听事件。...参数1:event 事件名; 参数2:[arg1] 可选参数,按顺序传入回调函数的参数; 返回值:该事件是否有监听; // 调用events模块,获取events.EventEmitter对象 var
所有这些都使得混乱的 JavaScript 模块状态变得更加混乱。 提示:本文重点介绍 Node.js 中的 ES 模块。...2017年9月:Node.js v8.5包含 ES 模块的实验性支持。...Node.js 模块的当前状态 CommonJS 模块 目前(撰写本文时的 2019 年 7 月)Node.js 中模块的事实标准是 CommonJS。...在标准的 CommonJS 脚本中使用 ES 模块(注意 .js 扩展名和使用require()函数): // index.js // synchronously load CommonJS module...Node.js 模块的未来状态 在撰写本文时,新模块的实施计划正处于第三和最后阶段。
大家好,我是前端西瓜哥,今天我们来看看 Node.js 模块查找的原理。 模块种类 模块有三种来源。 核心模块:Node.js 内置的包。比如 http、fs、path; 自定义模块:NPM 包。...比如 axios、express,位于 node_modules 目录下的同名目录,并通过 package.json 的 main 字段指定入口文件; 文件模块:项目自己的模块文件,使用路径的写法。...核心模块 首先分析标识符的风格,如果是不是路径的写法,我们会先找 Node.js 内置的包有没有匹配的,如果匹配,就导入对应模块,比如 require('http') 就能拿到一个 http 对象,可用于创建...文件模块 包通常是一个文件夹,里面会有 package.json 文件,Node.js 会提取其中 main 字段对应的文件作为模块文件。...Node.js 内置的模块也需要缓存,但它不会记录到 Module._cache 中,而是保存在 Module.
以下列出了 Node.js Buffer 模块常用的方法(注意有些方法在旧版本是没有的): 序号 方法 & 描述 1 new Buffer(size)分配一个新的 size 大小单位为8位字节的 buffer...废弃的: 使用 Buffer.from(buffer) 代替。 3 new Buffer(str[, encoding])分配一个新的 buffer ,其中包含着传入的 str 字符串。...废弃的: 使用 Buffer.from(string[, encoding]) 代替。 4 buf.length返回这个 buffer 的 bytes 数。注意这未必是 buffer 里面内容的大小。...length 是 buffer 对象所分配的内存数,它不会随着这个 buffer 对象内容的改变而改变。...负的索引是从 buffer 尾部开始计算的。 21 buf.readUInt8(offset[, noAssert])根据指定的偏移量,读取一个无符号 8 位整数。
引言:Python的强大体现在“模块自信”上,因为Python不仅有很强大的自有模块(标准库),还有海量的第三方模块(或者包、库),并且很多开发者还在不断贡献在自己开发的新模块(或者包、库)。...本文将向大家概述介绍Python的自有模块——标准库。 本文选自《跟老齐学Python:轻松入门》。 “Python自带‘电池’”,这种说法流传已久。 ...那些在安装Python时就默认已经安装好的模块被统称为“标准库”。 熟悉标准库是学习编程必须要做的事。...,以标准库pprint为例。 ...对于Python的标准库和第三方模块,不仅可以查看帮助信息和文档,而且还能够查看源码,因为它是开放的。
领取专属 10元无门槛券
手把手带您无忧上云