Node.js的知识点框架整理

背景:因为appium是基于Node.js的,所以想看一下Node.js。但是发现很多资料的顺序看起来有点颠倒。然后就一面看资料一面整理了一下大概的知识点框架,希望对自己对别人有用。

本文不包含node.js的基本语法。node.js的基本语法和JavaScript基本一样,可以以后再单独整理一份基本语法的。

Node.js是一个基于chrome V8的JavaScript运行时的环境

Node.js是事件驱动,非阻塞式I/O模型

Node.js使用npm包管理器

使用Node.js不仅实现了一个应用,也实现了整个HTTP服务器,所以不需要单独搭建Apache或nginx

Node.js安装

mac下安装方法

brew install node

查看node.js的版本

node -v

查看包管理工具npm版本

npm -v

进入node.js的交互式解释器

node

交互式解释器和python的类似。可以输入命令实时查看输入结果

npm的使用

npm随着node一起被安装

npm允许用户从NPM服务器下载并安装第三方包,也允许将自己编写的包上传到第三方服务器,类似python的pip

npm安装命令

npm install 【包名】

安装的包放在工程目录的node_modeles目录下,例如mac上是在/usr/local/lib/node_modules文件夹下

安装好的包在代码中通过require("包名")来引用

安装的包模块的目录下有package.json,文件包含了包名、依赖包列表(npm安装时会将依赖表中的包自动安装)

Package.json 属性说明

  • name - 包名。
  • version - 包的版本号。
  • description - 包的描述。
  • homepage - 包的官网 url 。
  • author - 包的作者姓名。
  • contributors - 包的其他贡献者姓名。
  • dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
  • repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
  • main - main 字段是一个模块ID,它是一个指向你程序的主要项目。就是说,如果你包的名字叫 express,然后用户安装它,然后require("express")。
  • keywords - 关键字

http://www.runoob.com/nodejs/nodejs-npm.html

(属性转自菜鸟教程)

npm卸载命令

npm uninstall 【包名】

更新模块

npm update 【包名】

搜索模块

npm search【包名】

(从包管理中心搜索包含该关键词的包)

更改npm下载的地址为国内的仓库

有些包下载较慢,可以切换到国内的仓库

npm config list(查看npm的一些配置项)

npm config set registry cnpmjs.org(更改仓库为cnpmjs.org)

首次更改仓库后,会创建一个~/.npmrc文件,里面内容为“registry="https://registry.npm.taobao.org "”

如果想切回到原来的下载中心,可以将~/.npmrc中的registry注释掉或删掉。

Node.js引入其他模块

通过require()引入其他模块

引入npm下载的第三方模块

require("模块名")

引入本地某一路径下的模块(实际就是.js文件,引用时不需要后缀)

require("路径/模块名")

例如引入当前目录的hello.js模块:require("./hello")

Node.js的函数

Node.js中一个函数可以作为另一个函数接收参数,通过关键字function定义函数

定义方式:function 函数名(参数){要执行的内容}

function say(word){console.log(word)} \\定义一个名字为say的函数,参数为word

say("hi") \\调用函数say,并传递参数word为hi

在函数做为参数传递时,也可以定义一个匿名函数(不取函数名,直接function(参数){要执行的内容})直接传递给函数

function exe(name,value){name(value)} \\定义一个函数exe

exe(function(value){console.log(value)},"wow,see it!")  \\执行exe()时,传递的第一个参数是一个匿名函数

Node.js的事件

Node.js是单进程单线程应用程序,通过事件和回调来支持并发(Node.js所有的API都通过回调实现了异步)

Node.js中所有事件都是用观察者模式实现的

Node.js中大部分的模块都继承自Event模块(Event模块是一个简单的事件监听器模式的实现)

Node.js可以通过引入events模块,并通过实例化EventEmitter类来绑定和监听事件。

绑定事件及事件的处理函数:eventEmitter.on("事件名字",函数)   \\实际就是绑定给时间eventEmitter一个监听器

触发事件:eventEmitter.emit(“事件名字”)

例子如下:

var events=require("events")//导入events模块

var eventemitter=new events.EventEmitter()//实例化events的EventEmitter类

eventemitter.on("start",function(){console.log("hello world")})//注册一个事件,绑定打印hello world的事件,名字为start,实际start就是一个监听器

eventemitter.emit("start")//触发事件start

实际上on调用的是addListener(event,listener)。一个事件可以on多个监听器,emit执行时依次执行。

可以通过removerListener来移除一个监听器,监听器还有很多其他的方法。

类方法

Node.js的回调函数

Node的所有API都支持回调函数(也可以选择不使用回调函数),Node.js的异步是通过回调来实现的,非阻塞的I/O,大大提高了Node.js的性能

阻塞是按顺序执行的,必须执行完当前的代码才会进行下一个执行。而非阻塞是不需要按照顺序的,所以如果需要处理回调函数的参数,就需要写在回调函数内。

例如fs的读取函数readFile:

var fs=require("fs")

fs.readFile("test.txt",function(err,data){

if (err) return console.log(err)

console.log(data.toString())

})

Node的API回调函数的第一个参数都是捕获错误,第二个参数一般是正确的返回值

Node.js全局对象

全局对象:它及它的所有属性可以在程序的任何地方访问,不需要require导入

process:与当前进程互动,可以查看当前目录、进程等

console:用于输出

setTimeout :定时,用法【setTimeout(函数,毫秒单位的时间)】

还有很多其他的全局对象

Node.js的工具模块

Node.js模块库有很多很好用的模块,下面列举几个

os:返回当前系统的一些数据

path:对路径做的一些操作

http:可以创建web服务器对象等

fs:针对文件进行读写等操作

时间: 2024-10-14 06:14:14

Node.js的知识点框架整理的相关文章

node.js Web应用框架Express.js(一)

什么是Express.js Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用,提供丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健.友好的API变得快速又简单,Express 不对 node.js 已有的特性进行二次抽象,只是在它之上扩展了Web应用所需的功能. 开篇,这里就只做简单的介绍,整理一些有关express.js的资源,与大家一起学习 Express.js中文社区:http://expressjs.j

Node.js的Connect框架的代码重写与改进

Node.js的Connect框架的代码重写与改进 Connect框架简介 Connect框架是建立在Node.js的基本http.server功能之上,帮助实现结构化的web服务器逻辑的框架.Connect框架建立在两个重要的设计模式之上. 1) 责任链模式 在处理web请求时常需要作分派处理.例如,ASP.NET MVC支持按照请求参数将处理分派至某个Controller类的某个Action方法,以及根据Action方法的返回结果类型分派不同的结果操作(如ViewResult.JsonRes

10 个最佳的 Node.js 的 MVC 框架

补充:http://nokit.org/ https://thinkjs.org/zh-cn/doc/index.html Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 run across distributed devices 的 data-intensive 的实时应用· 本文介绍 10 个基于 Node.js 的 MVC 框

Express 4.x Node.js的Web框架

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3821150.html 本文使用node.js v0.10.28 + express 4.2.0 1 Express概述 Express 是一个简洁而灵活的node.js的MVC Web应用框架,提供一系列强大特性创建各种Web应用. Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了We

Node.js:Express 框架

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具.使用 Express 可以快速地搭建一个完整功能的网站. Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了路由表用于执行不同的 HTTP 请求动作. 可以通过向模板传递参数来动态渲染 HTML 页面. 1.安装 Express 并将其保存到依赖列表中: $ cnpm install express --save 以上命令会

node.js 11 Web框架Express 介绍,安装,静态页面,路由

本文参考原文-http://bjbsair.com/2020-03-22/tech-info/2815/前面介绍了node.js的文件模块,http server以及静态网站的创建.有了这些知识作为基础,我们可以了解一下node.js的Web框架了. 从Java一路过来的朋友可能觉得Web框架还是比较重量级的,比如最初的Struts到后来的Spring,中间Apache组织也有过一些其他的模板框架,总体而言无论是从使用还是学习来讲,都是需要花费较多时间的.对于大型应用而言,这个投入是值得的.如果

node.js基于express框架搭建一个简单的注册登录Web功能

这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注明一下版本,因为express因为版本的不同使用的方式也不同,我这算是目前最新的了吧 还没有装express的可以移步到这里 看看express框架的获取安装 1.简单地项目初始化 进入你的nodejs安装路径下边,如图,然后执行命令  express -e test  (这里把项目名设置为test

Express 4.x Node.js的Web框架----《转载》

本文使用node.js v0.10.28 + express 4.2.0 1 Express概述 Express 是一个简洁而灵活的node.js的MVC Web应用框架,提供一系列强大特性创建各种Web应用. Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能. Expressd底层由Node.js的HTTP模块实现. 1.1 express 4.x 安装 express 4.x与之前的版本有了许多的变化,书里和网上的很多方法都不再适用.学

Node.js前置知识点(一):回调函数

前言 因为开始了解和学习Node.js,发现在使用之前,有必要先知道一些前置的知识点(其实是关于操作系统的知识),主要包括: 什么是 回调函数(callback): 什么是 同步/异步: 什么是 I/O: 什么是 单线程/多线程: 什么是 阻塞/非阻塞: 什么是 事件 和 事件驱动: 什么是 基于事件驱动的 回调: 什么是 事件循环: 本文就是系列文章的第一篇,用来介绍回调函数.(参考来源 见文末的 Reference) 一 什么是 回调函数(callback) 我觉得理解一个概念,应该是从简单