深入理解Node内建模块和对象
在 node
核心中有些内建模块,使用这些模块可以操作系统,文件和网络。打开 nodejs.org
官网可以看到文档中对应版本的 API
,推荐使用稳定版。
当然也不全是模块,比如 console
、 buffer
是对象,这里简单的讲下一些常用的内建模块。
比如有操作文件系统的 filename
、可以创建监听 HTTP
请求的网络服务的 HTTP
、还有操作系统的 OS
模块、还有 path
,操作路径、 process
可以返回我们现在正在处理的信息、 QueryString
用来创建 http
服务的时候非常有用。 stream
可以用来操作数据流,后面需要的时候也可以学到其它的一些模块。
首先我们先来看看 path
模块,在文档中可以看到这个模块所有的函数。
往下拉也可以看到针对模块的使用作出的说明。
回到编辑器,引入 path
模块
这就是 path
对象,有很多有用的属性,比如 root
根目录路径, dir
应用的文件夹路径, base
应用的名称, ext
文件的后缀名, name
除去后缀名的应用名。可以很容易的得到相关的字符串。
关于如何使用 OS
模块获取当前操作系统的信息。在文档中可以看到这个模块所有的函数。
比如 freemem
,会返回当前可用的内存有多少。 totalmem
返回总内存的大小。 uptime
获取开机时间等等。
在 node
之前,用 JavaScript
是得不到这些信息的, JavaScript
被设计为只能操作 window
或者 document
对象,而不能获取操作系统的信息。
fs
模块是我们之后用到的非常多的一个,官方的文档中列出了很多的操作文件和路径的方法。
这里列举一个例子看看如何在 node
中操作,其余的按照文章的方法一一尝试学习就好。这里需要注意的是在实际编程环境里, fs
对象里有很多的同步或者阻塞的方式,和异步或者非阻塞的方法。尽量避免使用同步方法,使用异步方法。因为 node
是单线程的,同步的方法过多,会造成阻塞,从而无法服务众多客户端。
这里以同步方法是为了方便理解。
我们得到了一个字符串数组,是这个文件夹中的文件。 好了,我们尝试再使用异步的方法看看,第一个参数是路径,第二个参数是回调函数, node
会在异步操作完成后自动执行函数。
得到的结果和同步是一样的,那如果我更改下路径会发生什么的?
提示没有这样的文件或是目录。
所以在 node
中,能不用同步方法就不用,而是用异步。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
NodeJS学习笔记之Http模块
一,开篇分析 首先"Http"这个概念大家应该比较熟悉了,它不是基于特定语言的,是一个通用的应用层协议,不同语言有不同的实现细节,但是万变不离其宗,思想是相同的, NodeJS作为一个宿主运行环境,以JavaScript为宿主语言,它也有自己实现的一套标准,这篇文章我们就一起来学习一下 "Http模块" .但是作为前提来说, 希望大家可以先阅读一下官网提供的api,有一个前置了解,这样就方便多了,以下是Http部分的api概览: 复制代码 代码如下: HTTP
-
Nodejs学习笔记之NET模块
一,开篇分析 从今天开始,我们来深入具体的模块学习,这篇文章是这个系列文章的第三篇,前两篇主要是以理论为主,相信大家在前两篇的学习中, 对NodeJS也有一个基本的认识,没事!!!趁热打铁,让我们继续将NodeJS进行到底,好了废话不多说,直接进入今天的主题 "Net模块" ,那么"Net"应该如何理解那? 它是做什么用的那?(Net模块可用于创建Socket服务器或Socket客户端.NodeJS 的数据通信,最基础的两个模块是 Net 和 Http,前者是基于
-
NodeJS学习笔记之FS文件模块
一,开篇分析 文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集.可以通过调用 require("fs") 来获取该模块.文件系统模块中的所有方法均有异步和同步版本. (1),文件系统模块中的异步方法需要一个完成时的回调函数作为最后一个传入形参. (2),回调函数的构成由调用的异步方法所决定,通常情况下回调函数的第一个形参为返回的错误信息. (3),如果异步操作执行正确并返回,该错误形参则为null或者undefined.如果使用的是同步版本的操作方法,一旦出现错误
-
Node.js中路径处理模块path详解
前言 在node.js中,提供了一个path某块,在这个模块中,提供了许多使用的,可被用来处理与转换路径的方法与属性,将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了.下面我们就来详细介绍下关于Node.js中的路径处理模块path. 获取路径/文件名/扩展名 获取路径:path.dirname(filepath) 获取文件名:path.basename(filepath) 获取扩展名:path.extname(filepath) 获取所在路径 例子如下: var path = re
-
NodeJS学习笔记之MongoDB模块
一,开篇分析 这篇属于扩展知识篇,因为在下面的文章中会用到数据库操作,所以今天就来说说它(Mongodb模块). (1),简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bj
-
Nodejs学习笔记之Stream模块
一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流是可读,可写或兼具两者的. 最早接触Stream是从早期的unix开始的, 数十年的实践证明Stream 思想可以很简单的开发出一些庞大的系统. 在unix里,Stream是通过 "|" 实现的.在node中,作为内置的stream模块,很多核心模块和三方模块都使用到. 和unix一样,node stream主要的操作也是.pipe(),使用者可以使
-
Nodejs进程管理模块forever详解
接下来,就让我们看看forever能不能实现目标. 一.forever介绍 forever是一个简单的命令式nodejs的守护进程,能够启动,停止,重启App应用.forever完全基于命令行操作,在forever进程之下,创建node的子进程,通过monitor监控node子进程的运行情况,一旦文件更新,或者进程挂掉,forever会自动重启node服务器,确保应用正常运行. 二. forever安装 全局安装forever 复制代码 代码如下: ~ D:\workspace\javascri
-
nodejs的require模块(文件模块/核心模块)及路径介绍
在nodejs中,模块大概可以分为核心模块和文件模块. 核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net')). 文件模块,则是指js文件.json文件或者是.node文件.在引用文件模块的时候后要加上文件的路径:/.../.../xxx.js表示绝对路径../xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录.如果既不加/.../.../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹
-
深入理解Node内建模块和对象
在 node 核心中有些内建模块,使用这些模块可以操作系统,文件和网络.打开 nodejs.org 官网可以看到文档中对应版本的 API ,推荐使用稳定版. 当然也不全是模块,比如 console . buffer 是对象,这里简单的讲下一些常用的内建模块. 比如有操作文件系统的 filename .可以创建监听 HTTP 请求的网络服务的 HTTP .还有操作系统的 OS 模块.还有 path ,操作路径. process 可以返回我们现在正在处理的信息. QueryString 用来创建 h
-
Python内建模块struct实例详解
本文研究的主要是Python内建模块struct的相关内容,具体如下. Python中变量的类型只有列表.元祖.字典.集合等高级抽象类型,并没有像c中定义了位.字节.整型等底层初级类型.因为Python本来就是高级解释性语言,运行的时候都是经过翻译后再在底层运行.如何打通Python和其他语言之间的类型定义障碍,Python的内建模块struct完全解决了所有问题. 知识介绍: 在struct模块中最最常用的三个: (1)struct.pack:用于将Python的值根据格式符,转换为字符串(因
-
Python中内建模块collections如何使用
collections是Python内建的一个集合模块,提供了许多有用的集合类. 这里举几个例子: namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> p = (1, 2) 但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的. 定义一个class又小题大做了,这时,namedtuple就派上了用场: >>> from collections import namedtuple >>>
-
了解一下python内建模块collections
在使用Python的过程中,一定是离不开数据结构的, 也就是List-列表,Tuples-元组,Dictionaries-字典. 那实际应用中我们更多的还是要去操作这些结构里的数据.比如,在列表后面添加元素,那么就会用到append() 方法. 那除了这些本身的操作方法之外,还有一个Python内建模块--collections,也提供了不少使用的方法,今天来捋一下. 一.Counter 这是一个计数器,我们可以用来方便的统计出一些元素出现的次数,比如String.List.Tuples等等.
-
使用Python的内建模块collections的教程
collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> p = (1, 2) 但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的. 定义一个class又小题大做了,这时,namedtuple就派上了用场: >>> from collections import namedtuple >>> Point = n
-
深入理解node.js http模块
http模块主要用于搭建HTTP服务端和客户端,使用HTTP服务器或客户端功能都必须调用http模块. 创建服务器 var http = require("http");var url = require("url");//创建服务器//http继承自tcpvar server = http.createServer(function (req,res) { var urlstr = req.url;//获取请求的路径 var urlMethod = req.met
-
深入解析Python中的__builtins__内建对象
如果你已经学习了包,模块这些知识了. 你会不会有好奇:Python为什么可以直接使用一些内建函数,不用显式的导入它们,比如 str() int() dir() ...? 原因是Python解释器第一次启动的时候 __builtins__ 就已经在命名空间了(Note: 有s) 进Shell看看: >>> globals() {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '
-
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
内建对象就好比是JDK中的类库,开发者可以直接拿来使用,这极大的方便了常见的编程任务.这篇文章就来浏览一下主要的内建对象,当然,我们并不是第一次接触内建对象,前面已经接触到的就有Object.Function.Boolean.Number.String,对于已经介绍过的,这里再总结复习一下,没有介绍过的,根据相关性来对比的总结,RegExp对象及正则表达式在下一篇中再单独介绍. 1.内建全局单例对象 (1)内建全局单例对象:在整个执行环境中只有一个对象实例,这些对象没有内部属性[[Constru
-
Node.js 的模块知识汇总
在写 Node.js 应用程序的时候,你确实可以把所有代码放在巨大原 index.js 文件中,不在乎你的应用程序会变得多大多复杂.Node.js 解释器不会在意这个事情.但在代码组织方面,你很快就会陷入混乱,不能理解代码,而且难以调试.所以,作为一个人,你应该关心代码的结构.这就是使用模块的原因. 你可以把 Node.js 模块当作 JavaScript 库 -- 是整体代码中你想放在一起的某个部分(比如,函数集),你会想把这部分代码相对独立于代码库中的其它部分,可以把事情区分清楚. 就们我们
-
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
一.变量和表达式 复制代码 代码如下: >>> 1 + 1 2>>> print 'hello world' hello world>>> x = 1 >>> y = 2>>> x + y3 Python是强类型语言,无法根据上下文自动解析转换成合适的类型. Python是一种动态语言,在程序运行过程中,同一个变量名在运行的不同阶段可以代表不同形式的值(整型,浮
随机推荐
- Python算法应用实战之队列详解
- Yii使用DeleteAll连表删除出现报错问题的解决方法
- php session劫持和防范的方法
- Mssql高级注入笔记II
- php mysql访问数据库的步骤详解
- 使用JavaScript实现弹出层效果的简单实例
- VBS备忘录启动代码
- 使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
- jQuery实现动态添加tr到table的方法
- JS实现兼容各浏览器解析XML文档数据的方法
- JS实现的自定义水平滚动字体插件完整实例
- Kloxo面板无法登录出现500错误的解决方法
- DevExpress中GridControl列转义的实现方法
- C#文件操作类分享
- java使用异或对文件进行加密解密
- 详解vuex之store拆分即多模块状态管理(modules)篇
- 易语言文本型和字节集型数据相互转换的工具
- SpringCache框架加载/拦截原理详解
- MySQL慢查日志的开启方式与存储格式详析
- Sanic框架应用部署方法详解