zoukankan      html  css  js  c++  java
  • Node.js——运行在服务端的 JavaScript

      Node.js
    组成

    1、引入required模块:使用require指令载入模块。

    2、创建服务器:服务器可以监听客户端的请求。

    3、接受请求与响应请求。服务器接收请求后返回响应数据。

    npm

    (npm 命令用于从国外的服务器上下载别人做好的模块)

    1、用来下载别人模块的工具

    (1)切换到项目目录下:d:project odejssrc

    (2)安装模块:npm install 【模块名】

    (3)安装的目录:nodejs/src/node_modules文件目录下。

    2、发布自己模块的工具

    (1)新建项目目录:nodejs/helloyap

    (2)新建文件:a.js+package.json

    (3)登陆npm:npm adduser

    (4)发布模块:D:project odejshelloyap>npm publish

    (5)邮件通知发布成功

    cnpm

    (c 是 copy的意思,即复制 npm 上面的库。)

    (把npm 上面的库复制到 国内的服务器上。)

    (当需要用的时候,使用 cnpm 命令获取)

    1、用来下载别人模块的工具

    (1)切换到项目目录下:d:project odejs

    (2)安装模块:cnpm install 【模块名】

    (3)安装的目录:nodejs/node_modules文件目录下。

    repl

    (交互式解释器:类似电脑系统的终端)

    (在终端即控制台中输入命令,并接收系统的响应)

    (1)运行命令cmd,打开控制台

    (2)输入命令node,启动Node的终端

    (3) 调试 Javascript 代码

     回调函数

    (回调函数一般作为函数的最后一个参数出现)

    (异步编程通过使用回调函数来实现)

    (Node的所有API都支持回调函数)

    (可以处理大量的并发请求,提高Node.js的性能)

    (1)阻塞是按顺序执行,非阻塞是不按顺序执行

    (2)两个任务:任务1读取文件,然后输出文件内容;任务2输出一句话。

    (3)把"输出文件内容"这件事,包装成回调函数function(参数){..}。在回调函数中,输出文件内容。

    (4)把任务1当成普通函数,(2)中的回调函数,作为该函数的最后一个参数出现。

     事件循环

    (Node.js 单线程类似进入一个while(true)的事件循环,

    直到没有事件观察者退出)

    (每个异步事件,都生成一个事件观察者)

    (有事件发生就调用该回调函数.)

    (基本上所有的事件机制,都是用设计模式中观察者模式实现)

    (1)引入events模块:var  events=require('events');

    (2)创建一个eventEmitter对象:var eventEmitter=new events.EventsEmitter();

    (3)绑定事件及事件的处理程序:eventEmitter.on('eventName',eventHandler);

    (4)触发事件:eventEmitter.emit('eventName');

     EventEmitter

    (events模块只提供了一个对象:events.EventEmitter。)

    (EvenetEmitter的核心就是事件触发与事件监听功能的封装。)

    (如果实例化EventEmitter对象时发生错误,就会触发error事件。)

    (所有产生事件的对象,都是event.Emitter的实例。)

    (EventEmitter支持若干个事件监听器。)

     1、方法

    (1)addListener(event,listener):为指定事件添加一个监听器,到监听器数组的尾部。

    (2)on(event,listener):为指定事件注册一个监听器。

    (3)once(event,listener):为指定事件注册一个单次监听器。该监听器只会触发一次,触发后立刻解除该监听器。

    (4)removeListener(event,listener):移除指定事件的监听器,监听器必须是该事件已经注册过的监听器。【此操作将会改变处于被删监听器之后的那些监听器的索引。】

    (5)removeAllListener([event]):移除所有事件的监听器,如果指定事件,只移除指定事件的所有监听器。

    (6)setMaxListeners(n):提高监听器的限制数量,原先超过10个就会发出警告信息。

    (7)listeners(event):返回指定事件的监听数组。

    (8)emit(event,[arg1],[arg2],[...]):按监听器的顺序执行每个监听器。如果事件有注册监听则返回true,否则返    回false。

    2、类方法

    (1)listenerCount(emitter,event):返回事件的监听器数量。

    3、error事件

    (1)EventEmitter定义了一个特殊的事件error,包含了错误的语义。

    (2)异常时会触发error事件。

    (3)EventEmitter规定如果没有响应的监听器,Node.js会把它当异常,退出程序并输出错误信息。

    (4)一般要为error事件的对象设置监听器,避免程序崩溃。

    4、继承EventEmitter

    (1)一般不直接使用EventEmitter,而是在对象中继承它。

    (2)包括fs、net、http在内的,只要是支持事件响应的核心模块都是EventEmitter的子类。

    (3)事件的监听和发生应该是一个对象的方法。

    后续再补充  
       
  • 相关阅读:
    绝对干货:供个人开发者赚钱免费使用的一些好的API接口
    科普技术贴:个人开发者的那些赚钱方式
    北漂程序员的笑与泪
    非著名程序员公众号
    北漂程序员的笑与泪
    【有人@我】Android中高亮变色显示文本中的关键字
    新时代的coder如何成为专业程序员
    自定义圆形控件RoundImageView并认识一下attr.xml
    偷天换日:网络劫持,网页js被伪装替换。
    jeesite 去掉 /a
  • 原文地址:https://www.cnblogs.com/Strugglinggirl/p/13704955.html
Copyright © 2011-2022 走看看