一、模块的作用 把实现某个功能的函数,放到单独 js 文件中,这个 js 文件就被称模块(module),其他代码只需导入这个 js 文件,即可使用其功能,达到代码复用的目的。...二、全局变量 模块被 Node.js 加载时,会用函数将其进行包裹,所以就有了5个模块内全局变量: // Node.js 包裹模块的函数如下: (function(exports, require,...__filename :表示当前模块文件的路径(包含模块文件名的全路径) __dirname :表示当前模块所在文件夹的路径 三、通过实例查看各变量 创建 example.js 文件,复制如下代码到文件中保存...,在终端中执行 node example.js 就可以看到输出结果。...("path.dirname(__filename) : ", path.dirname(__filename)); 四、参考文档 Node.js的模块,有哪些全局变量?
一、Node.js模块化 1.0、变量作用域 (1)、在浏览器端使用var或不使用关键字定义的变量属于全局作用域,也就是可以使用window对象访问。...中没有window对象 (3)、在Node.js的交互环境下,定义的变量属于global,global是类似浏览器端的window对象 (4)、在模块中(文件中)有global对象,使用关键字var...http.createServer(...); Node.js中自带了一个叫做"http"的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。...Node.js 的 require方法中的文件查找策略如下: 由于Node.js中存在4类模块(原生模块和3种文件模块),尽管require方法极其简单,但是内部的加载却是十分复杂的,其加载优先级也各自不同...require()方法用于加载模块。 二、Node.js 文件系统 Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API。
之前用node.js写的订餐系统,很容易挂掉,一直也没想去解决它。今天看了一下,试了试,原因是在连接数据库的时候没有对error事件进行处理,导致程序一直挂在那里,需要重启服务才能正常使用。...没有使用缓存,直接都是操作数据存,所以导致一个页面数据库请求比较多。如果按住f5不动,操作太快,查询还没来得及响应,connect就被断开了,触发其error事件。...参考: 在Node.js使用mysql模块时遇到的坑 Reproduce MySQL error: The server closed the connection (node.js)
在node中的模块,相当于java中的类,模块包含成员变量,成员方法,继承 在下面设计一个user,一个子类tec //这个类在外部的node1.js文件中 function user(id,name.../node1'); //继承user。...在这里文件的名字可以写后缀.js,也可以不写 function tec(id,name,age){ user.apply(this,[id,name,age]); this.ter...favicon.ico"){ //避免两次运行 User=new user(1,'张三',20); Tec=new tec(2,'李四',25); //将对象实例化 //使用了第一种方法.../* User.id=1; User.name="张三"; User.age=20;*/ User.enter(); //如果上面user中使用第二种方法的时候需要用这一段
在node中的模块,相当于java中的类,模块包含成员变量,成员方法,继承 在下面设计一个user,一个子类tec //这个类在外部的node1.js文件中 function user(id,name,.../node1'); //继承user。...在这里文件的名字可以写后缀.js,也可以不写 function tec(id,name,age){ user.apply(this,[id,name,age]); this.ter...favicon.ico"){ //避免两次运行 User=new user(1,'张三',20); Tec=new tec(2,'李四',25); //将对象实例化 //使用了第一种方法.../* User.id=1; User.name="张三"; User.age=20;*/ User.enter(); //如果上面user中使用第二种方法的时候需要用这一段
4、系统模块 (1)什么是系统模块 Node运行环境提供的API....因为这些API都是以模块化的方式进行开发的, 所以我们又称Node运行环境提供的API为系统模块 image.png 例:文件模块 (2)系统模板fs文件操作 f:file 文件 ,s:system...fs对模块进行引用 const fs = require('fs'); // 2.通过模块内部的readFile读取文件内容 fs.readFile('./01.helloworld.js', 'utf8...doc); }); image.png 写入文件内容 fs.writeFile('文件路径/文件名称', '数据', callback); 1 const content = '正在使用...,因为相对路径有时候相对的是命令行工具的当前工作目录 在读取文件或者设置文件路径时都会选择绝对路径 使用__dirname获取当前文件所在的绝对路径 const fs = require('fs');
默认情况下,所有的repl.REPLServer实例都使用一个求值函数来计算JavaScript表达式,并且提供Node.js内置模块的访问方式。...默认的求值程序在有用到时,会自动将Node.js的核心模块加载进REPL的环境中。...): Node.js它自己使用repl模块为执行JavaScript来提供它自己的交互性接口。...通过使用如下的变量,Node.js的REPL的各种行为都可以被自定义化。...之前在Node.js/io.js v2.x中,REPL历史记录被NODE_REPL_HISTORY_FILE环境变量所控制,并且历史记录被保存为JSON格式。这个变量现在已经被废弃了。
第2章 核心模块的使用 2.1.1 FS模块 node核心模块之一,用于操作文件; 中文手册 : http://nodejs.cn/api/fs.html 文件读写 // 引入模块 var fs = require...node核心模块之一,用于搭建HTTP服务器; 中文手册 http://nodejs.cn/api/http.html ?...使用http这个模块中的createServer()创建一个服务器实例对象 var server = http.createServer(); // 3..../public/h.js"> server.on('request', function(request, response) { // url 属性返回请求的...模仿Apache服务器,遍历文件及文件,显示时间及大小; 右键另存为,下载页面当作静态页面模板使用; 使用node载入静态页面: ? ?
问题 如果在 Electron 中使用 React,在 React 组件中调用 Node.js 模块会抛出错误,告知你模块或者模块中的方法不存在,这是因为默认情况下 Electron 模拟的是纯浏览器环境...,而浏览器中自然无法直接使用 Node.js 模块,如果需要使用 Node.js 模块,需要进行额外的配置。...Electron 中的 BrowserWindow 对象的时候,进行额外配置,启用 webPreferences 中的 nodeIntegration 和 nodeIntegrationInWorker,使之支持 Node.js...: import path from 'path'; 这样的形式引用 Node.js 模块,如果没有使用 babel,则需要使用: const path = window.require('path')...; 来引用 Node.js 模块。
//1,导入http模块 const http = require('http') //2,创建web服务器实例 const server= http.createServer() //3,为服务器实例绑定
Node.js 中自带了一个叫做 http 的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。 这把我们的本地变量变成了一个拥有所有 http 模块所提供的公共方法的对象。...Node.js 的 require 方法中的文件查找策略如下: 由于 Node.js 中存在 4 类模块(原生模块和3种文件模块),尽管 require 方法极其简单,但是内部的加载却是十分复杂的,其加载优先级也各自不同...以http模块为例,尽管在目录下存在一个 http/http.js/http.node/http.json 文件,require("http") 都不会从这些文件中加载,而是从原生模块中加载。...从文件加载 当文件模块缓存中不存在,而且不是原生模块的时候,Node.js 会解析 require 方法传入的参数,并从文件系统中加载实际的文件,加载过程中的包装和编译细节在前一节中已经介绍过,这里我们将详细描述查找文件模块的过程...DIRS = DIRS + DIR d. let I = I - 1 5. return DIRS exports 和 module.exports 的使用 如果要对外暴露属性或方法,就用 exports
往期文章 【Node.JS 练习】考试成绩整理 【Node.JS】buffer类缓冲区 【Node.JS】事件的绑定与触发 【Node.JS】写入文件内容 【Node.JS】读取文件内容 ----...目录 简介 path.join() 语法格式 例 path.basename()方法 语法格式 例 path.extname() ---- 简介 path模块是Node.js官方提供的,用来处理路径的模块...path.join() 语法格式 使用path.join()方法,可以把多个路径片段拼接为完整的路径字符串。...let a = '/q'; let pathStr = path.join('/a', '/b/c', '../', a); console.log(pathStr); 连接字符串可以识别变量,/...const path = require('path');//导入path模块 let a = '/q'; let pathStr = path.join(__dirname, '/a', '/b/c'
request模块让http请求变的更加简单。...www.google.com.hk/images/srpr/logo3w.png').pipe(fs.createWriteStream('doodle.png')); request也支持OAuth的签名请求 更多使用方法和说明可点击这里继续阅读...:https://github.com/mikeal/request/ 这里写了一个很简单的示例,用来抓取去哪儿网的酒店查询数据(获取酒店某一时间段内各房型的价格排名): 1: var request...如果数据量比较大,就需要对返回的数据根据日期、酒店ID进行存储,如果获取数据进行对比的时候直接读文件 13: var filePath = __dirname + '/data/data.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()) 出现了八个模块,代表是八核 ?
在写一个工具的时候,需要将xml转为json方便处理,以前电脑上装的node.js的版本为0.8,结果我再安装node-xml2json时提示版本过低,然后我又重装安装了最新版本。...然后再次尝试安装,首先报python版本不对,不支持3.0,然后再降级,再然后说windows系统需要先安装node-expat,装这个模块又需要先装node-gyp,好吧然后我一直安装失败… ?...最后我使用了这个模块: node-xml2json 根据thomasfrank大师写的 XML to JSON 改造的,唯一要注意的是如果xml中的节点属性有大写,转换之后全部成小写了。...获取crc的值 var val = crc.crc32(fs.readFileSync("xx.zip", null)).toString(10); console.log(val); 工具写完了,使用了几个模块...,觉得这几个模块都还很不错,有需要的同学可以自取:) 1、node-ftp 操作ftp,上传、下载文件。
应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项目中进行使用。...v8-profiler:性能及内存使用分析 通常,我们开发原生Node.js模块包括但不仅限于以下原因: 对性能有比较苛刻要求的应用。...可以在Node.js中通过require()方法进行调用,使用起来像调用Node.js普通模块一样。...—— 来自Node.js官方文档 这意味着如果处理得当的话,模块调用者使用由C/C++编写的原生模块的方式和由Node.js编写的模块一样。...它基于Node.js API接口,兼容所有Node版本,目前的最佳实践是基于nan来扩展原生模块,而不是直接使用Node.js API。
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。...换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。...引入模块 在 Node.js 中,引入一个模块非常简单,如下我们创建一个 main.js 文件并引入 hello 模块,代码如下: var hello = require('....Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。...在外部引用该模块时,其接口对象就是要输出的 Hello 对象本身,而不是原先的 exports。 服务端的模块放在哪里 也许你已经注意到,我们已经在代码中使用了模块了。
从版本8.5.0开始,通过一个命令行选项,Node.js就能支持原生的ES模块。这个新功能主要归功于Bradley Farias。 本文将会解释其中的细节。...但是动态import()运算符已经在开发中,应该不久就能使用了。 没有元变量,如__dirname和__filename。...看起来可能长这样: console.log(import.meta.url); 所有模块说明符现在都是URL(这是Node.js的新增特性): 对等文件(Peer files)——具有文件扩展名的相对路径...旧版Node.js上的ES模块 如果要在8.5.0之前的Node.js版本上使用ES模块,请查看John-David Dalton的@std/esm。...提示:如果您不解锁额外的新功能,则能完全兼容Node.js原生的ES模块。 FAQ ES模块什么时候可以无需命令行选项就能启用? 目前的计划是在Node.js 10 LTS中默认支持ES模块。
在使用Node.js进行开发时我们会将敏感的信息分为生产环境和开发环境进行文件形式的保存,那么如何设置环境变量成为了 一个问题。...在项目启动时我们可以使用cross-env插件进行设置,在项目启动时设置生产环境或者开发环境,例如: "scripts": { "dev:init": "node ..../dist/src/index.js", "build": "node ..../src/index.js" } Copy JSON 使用cross-env将process.env.ENV设置为development或者production,这样在项目启动后我们可以在入口文件中动态选择读取生产环境或者开发环境的文件...在入口文件我们需要安装dotenv插件进行处理,最好是尽早引入,这样在后面的文件中可以通过process.env进行变量的使用。
1 Node.js的模块和包 1.1模块 Node.js本身提供许多模块,每个模块实现一种功能,如文件操作模块fs,构建HTTP服务的http模块等,每个模块都是一个javascript文件,可以自己编写模块...每一个Node.js都是一个Node.js模块,包括JavaScript文件(.js)、JSON文本文件(.json)和二进制模块文件(.node) 1.1.1 模块的使用 模块内使用module.exports...和exports对外提供接口,便于在其他模块中引入要使用的模块,新建模块module.js,并对外提供接口。...Node.js采用CommonJS规范,一个javascript文件就是一个模块,包是一个文件夹,包内必须包含一个名为package.json的JSON文件。...Node.js中,许多对象会发出事件:fs.readStream 打开一个文件时会发出一个事件。
领取专属 10元无门槛券
手把手带您无忧上云