nodejs常用的全局对象和一些内部模块

特点:

(1)前后端都用js编写容易实现全栈

(2)非阻塞 i/o (最重要)

(3)完善的生态

(4)使用v8引擎

劣势:nodejs不适合计算密集型程序,只适合 i/o 密集型程序

运行node:(1)进入到当前文件所在路径

(2)运行node必须使用命令行,node+文件名字运行

异步:代码不是一行一行执行的

回调:当做完一件事的时候,马上反馈这件事

相对路径:“.”或者“无”开头的就是相对路径

js创建对象:(1){a:1}

(2)var obj  = new Object();

(3)function bar(){

this.a = 3;

}

全局对象:可以直接调用的对象我们称之为全局对象

1.console:可以调用log这个方法

2.setTimeout:超时调用

3.setInterval:间歇调用

4._ _dirname:当前文件所在路径

5._ _filename:当前文件的路径包括文件名

6.require:require的参数就是exports曝光文件的相对路径  require('./index.js');

7.exports:曝光,曝光后的变量别的文件就可以使用require引用

使用exports曝光变量必须加上属性,属性名可以自拟,然后可以曝光给其他文件,对象的键是属性名,值是曝光变量的值

(1)曝光变量(2)曝光对象(3)曝光方法(4)曝光构造函数

(5)曝光工厂函数:使用new Object创建对象,返回值,返回的是创建的对象

8.module:module和exports一起使用,exports可以作为module的属性

可以不添加属性,使用require引用

(1)pwd:显示当前路径  (2)cd:切换  (3)ls:展示下级所有

OS——官方为我们提供的文件 operation system操作系统

(1)使用官方为我们提供的js文件,需省略‘.js’后缀。

(2)不能以‘.’开头,如果引用自己定义的文件,路径必须以‘.’开头。

OS的作用:

node.js官方为我们提供有助于编程的文件,叫核心模块,都可以用require引用

(1)打印操作系统,查看当前node.js运行的平台是什么操作系统

console.log(os.platform());

(2)cpus:打印cpu参数和cpu核数

(3)hostname:打印主机名称

(4)arch打印cpu架构

核心模块!

1.process — 进程:一个程序运行起来就是进程,有进程就有进程号

可以通过pid查看当前node运行的进程号

2.util — untility(工具)

可以格式化我们的字符串

(1)format:%d表示数字   %s表示字符串

(2)util:可以查看属性和方法明细,通过inspect。

(3)depth:打印到第几层        console.log(util.inspect(util,{depth:1 } ) );

3.path — 用来操作路径

1.parse 解析路径

(1)root:根目录

(2)dir:当前文件所在的目录

(3)base:当前文件的带有扩展名的文件名

(4)ext:扩展名

(5)name:文件名

2.join 合并路径

join里面的参数可以是路径和文件的名字

3.isAbsolute是否绝对路径

它的返回值是布尔值,如果true为绝对路径,否则为相对路径

4.extname — 得到文件的扩展名

4.events — 引用时间模块后,需创建监听发射事件的对象

使用事件需要映入时间模块events,必须加s

使用事件必须创建EventEmitter这个对象,这里的Event没有s,第一个字母大写

var em = new event.EventEmitter;

(1)on 监听事件方法

(2)emit 用来触发事件

(3)once 只监听一次

5.Buffer

①就是缓存,存数据,存比较大的数据

②存放的为二进制的数据

③Buffer的数据存在主机内存中,内存多大可以存多大

创建Buffer

1.使用new创建     var buf = new Buffer();

①Buffer也是一个全局对象

②Buffer第一个字母大写

③Buffer括号中的内容为Buffer的大小,单位字节

2.使用字符串创建

var buf = new Buffer(‘hello’);

console.log(buf.toString());

toString();可以把它打印成字符串

3.使用数组创建

var buf = new Buffer([1,3]);

6.流(stream)

在计算机中任何数据传输都是通过流

在node.js中流是一个 抽象的接口,用来传输010101(二进制),其实就是数据

在nide.js中流这个抽象的接口出去的就是数据流

在node.js中流(stream)也是核心模块

可以把stream看成Event.Emitter的子类

因为require('stream')曝光的是构造方法,所以需要new创建对象

流的方向:在node.js中流是有方向的是相对于cpu分为读流和写流

创建读流:Readable

创建写流:Writable

创建读写流:Duplex

总结:

流是一个抽象的接口,包括读流写流和读写流在node.js中流不是字节流node.js中基本上不会自己创建流,都是使用其它模块为我们创建好的流

小结总结:

核心模块:os  process  path  events  util  stream

全局对象:console  __dirname  __filename setTimeout setIntval module exports require

7.文件模块(fs【file system】)

文件模块是任何语言都很重要的模块

在计算机中除了文件夹都是文件,在linux中,只有文件

fs模块对文件的操作主要就是增删改查

在node.js中任何对文件的操作都分为同步异步

①异步读取文件 readFile()

第一个参数文件路径,第二个参数是回调,注意在回调函数中有两个参数,第一个是error,第二个是独到的数据

fs会把文件读取到Buffer中

因为你引入fs这个模块所以readFile()这个官方的方法已经写好了,作用就是读取完的数据会自动放到回调函数的data中如果有错误会通过error报出

②同步读取文件 readFileSync()

一个参数及文件路径

③异步写文件 writeFile()

第一个参数要写入文件的路径,第二个写入文件的内容,第三个回调函数,回调参数只有一个参数就是error

④同步写文件  writeFileSync()

第一个参数路径,第二个参数要写的内容

⑤异步追加文件内容  appendFile()

第一个参数路径,第二个参数内容,第三个参数回调,回调参数是error

⑥同步追加文件内容 appendFileSync()

第一个参数路径,第二个参数是追加的内容

⑦异步改变文件名 rename()

第一个参数是老名字,第二个参数是新名字,第三个参数是回调函数返回error

⑧同步改变文件名renameSync()

第一个参数是老名字,第二个参数是新名字

8.文件和流

一、使用流读取文件 createReadStream()

一个参数要读文件的路径

注意:该方法返回的是一个读流

因为读流是继承EventEmitter所以读流on和emit事件

①使用读流获取数据需要用on且第一个参数为'data',不用emit触发该事件,第二个参数是一个回调函数且有一个参数则该参数是被读文件的内容

没通过emit触发事件却调用了函数是因为使用的fs.createReadStream创建的流这个方法是官方定义的,所以当读流的时候就可以自动触发'data'事件,当检测文件有数据的时候回调函数的参数就是我们读取的文件的内容

②可以通过给createStream()添加选项来指定我们读取字节的个数,选项是第二个参数,是一个js对象{start:起始位置,end:结束位置}

③还可以通过'end'事件来额外操作,该事件是在读取完文档后触发,所以之前必须有'data'事件

总结:说明读流会自动触发两个事件'data'和'end'

二、使用流写文件 createWriteStream()

注意:该方法返回的是一个写流

写流通过write方法写入内容,方法的参数就是写入的内容

写流通过end方法告诉文件所有内容写入完毕

注意不能在end方法后使用write方法会出错

全总结:读流两事件,写流两方法

readFile和createReadStream的区别

文件是当前所有内容读取完后操作

流是对文件中的字节操作

比如:在流中专门提供了{start:"起始位置",end:"结束位置"}的方法对文件内容进行边读边截取

但是在文件中需要先把文件内容全部获取然后在通过字符串的方法进行截取

9.net

服务器端:

① 引入模块

②创建服务器端对象

createServer()

③监听

listen()

一个参数:端口号

④使用connection事件

只要客户端连接就会触发这个事件

⑤将客户端的client对象返回到createServer的参数中

⑥client是继承流的所以可以读流,可以使用'data'事件

客户端:

①引入模块

②创建连接对象 createConnection()

两个参数,第一个是要连接的端口的端口号,第二个是要连接的主机的ip地址(本机:127.0.0.1或者localhost)

③使用connect事件

④client是继承流的所以可以写流,可以使用write方法书写文本

10、readline    逐行读取

获取当前输入的内容,需要进程模块辅助创建readline对象

var    rd=new readline.createInterface({input:p.stdin,output:p.stdout})

监听line事件,该事件是当接收到回车时触发

11、url    网址    统一资源定位符    (unit resouny location)

①url.parse()    打印网址的详细信息(参数是网址)

12、querystring    查询字符串

①qs.parse()    用来将a=b这种格式解析成{a:b}

13、http    (超文本传输协议:hyper    text    transfer    protocal)

①引入http模块

②创建http对象

createServer()

③监听端口

listen()

④请求时要执行的部分

在createServer中加上回调函数,这个回调函数就是我所要执行的任务,createServer的作用就是当有请求               的时候,执行function这里面的代码。

回调函数有两个参数都是对象

①req(request)用来请求对象    继承读流

1.url    表示请求的url地址

2.method    请求方法(post,get,pnt,delete,update,Head~~~)

②res(response)表示响应对象    继承写流

可以通过fs模块引入html模块输入到网页中

node js还有很多外部模块后面会更新

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 6,297评论 0 6
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,607评论 2 41
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    Myselfyan阅读 4,061评论 2 58
  • 《道德经》第31章:夫兵者,不祥之器,物或恶之,故有道者不处。君子居则贵左,用兵则贵右。兵者不祥之器,非君子之器,...
    奔跑的石头阅读 12,036评论 1 14
  • 1. 叮铃铃,叮铃铃,叮铃铃…… 听不见,听不见,听不见…… 叮铃铃,叮铃铃,叮铃铃…… 呃……你赢了。 “喂?”...
    蔻蔻小鱼阅读 561评论 0 1