1.基本介绍- http://nodejs.cn/api/

Node.js 是一个基于Chrome V8 引擎的JavaScript运行环境

Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效

事件驱动: 任务执行,发布者,订阅者,事件驱动 .

非阻塞: 执行某一个任务的同时也可以执行其他任务

阻塞: 执行某一个任务,这个任务如果没有执行完成,其他任务必须等待

同步

异步

I/O: 输入/输出( 数据库操作,文件系统操作等 )

非阻塞I/O模型: 当使用Node.js来实现数据库操作、文件系统等操作时,要进行的异步操作,异步操作的核心传统实现方式就是回调函数和事件。

Node.js的包管理工具npm,是全球最大的开源库生态系统

2.环境配置

**npm(Node.js自带的包管理工具) **- https://www.npmjs.cn/

npm为你和你的团队打开了连接整个 JavaScript 天才世界的一扇大门。它是世界上最大的软件注册表。

npm info packagename 查看当前package 的版本信息

npm view packagename versions 查看npm下面package 所有的版本

npm update packagename 更新包

npm uninstall packagename 卸载包

npm install packagename -D 安装到开发环境

npm install packagename -S 安装到生成环境

初始化工程(项目):必做的事件

npm init - 回答一堆的问题,都可以跳过不回答。项目的配置信息和包的信息

npm init --yes 默认配置  一步到位。 前面的设置有关系。
npm init -y

安装包

使用npm install会读取package.json文件来安装模块。安装的模块分为两类

dependencies和devDependencies,分别对应生产环境需要的安装包和开发环境需要的安装包。

dependencies:生成环境的代码直接执行

devDependencies:开发环境的代码经过编译后执行

cnpm(npm太慢, 淘宝npm镜像使用方法)

cnpm install:淘宝镜https://blog.csdn.net/quuqu/article/details/64121812

Dos 按照顺序将下面的三句命令复制执行。

npm config set registry https://registry.npm.taobao.org

npm config get registry

npm install -g cnpm --registry=https://registry.npm.taobao.org

npm cache clean -f :清除npm的缓冲

yarn(软件安装)--facebook

https://blog.csdn.net/yw00yw/article/details/81354533(下载yarn和命令)

nrm(npm registry manager )是npm的镜像源管理工具,有时候国外资源太慢,那么我们可以用这个来切换镜像源。

首先全局安装 nrm npm install -g nrm

**列出可用的源:nrm ls **

使用哪个源:nrm use taobao

Node Version Manager(Node版本管理工具)

nvm是一个可以让你在同一台机器上安装和切换不同版本node的工具,nvm 的官方版本只支持Linux 和 Mac。 Windows 用户,可以用nvm-windows。

注意安装前卸载电脑里面的node版本

https://www.cnblogs.com/hamsterPP/p/8076131.html

https://blog.csdn.net/qq_32682137/article/details/82684898

配置淘宝源,让npm安装速度更快。

打开nvm安装的根目录“settings.txt”文件,在最后面追加下面两行:

node_mirror: https://npm.taobao.org/mirrors/node/

npm_mirror: https://npm.taobao.org/mirrors/npm/

nvm list available 列出node的所有版本。

nvm list 列出当前电脑中所有的Node.js的版本

nvm install version 安装某一个版本的Node.js ,

举例: 安装10.12.0版本 nvm install 10.12.0

nvm use version 切换某一个Node.js版本

切换后切记: 要确认Node运行十分正常

node -v

npm -v

如果以上两者输出正常,那么久切换成功了

如果不正常呢?换版本下载安装( 必须在8.9+ 以上)

3.相关版本

偶数版本为稳定版

奇数版本为非稳定版

LTS(Long Term Support)

LTS和Current区别

4.命令行介绍

cmd里面用的叫做 DOS命令

​ cmd终端唤醒: win键 + R , 输入cmd 回车

​ mkdir 创建目录

​ dir 列出当前目录的列表

​ cls 清空终端命令

​ del 删除某一个文件

git / powershell 用的是linux命令

​ cd 目录名 进入目录

​ mkdir 创建目录

​ ls 查看当前目录列表

​ clear 清空当前控制台

​ rm -rf 文件名称 删除某一个文件或是目录

​ cat 文件名 打开文件

​ ipconfig DOS和linux通用的查看ip地址

5.nodemon实时监听

Nodemon 是一款非常实用的工具,用来监控你 node.js 源代码的任何变化和自动重启你的服务器。

Nodemon 是一款完美的开发工具.

npm install -g nodemon

6.模块/包与commonjs 规范

内置模块:Node.js内部提供的模块,直接加载参考api使用,无需安装

第三方模块:一般都是从npmjs.com这个网站拉取。需要npm进行安装。

自定义模块:参考commonjs规范由用户书写的模块http://www.commonjs.org/

  1. 创建模块

  2. 导出模块

    导出单个:module.exports = function(){}

    导出多个:module.exports = { }

​ 3.引入模块

​ const selfmodule = require('./modulefile.js');

​ 通过解构引入

​ const { name,age,sex } = require( ' ./ *.js');

7.内置模块详解

Query String:

parse:将一个字符串转换成对象格式。

stringfly:将对象转换成字符串格式。

escape:将中文进行编码。

unescape:将中文进行解码。

url:解析URL相关网址信息

url.parse()--将一个URL字符串转换成对象并返回。

url.format()--parse逆运算。

url.resolve()

http模块:

http.createServer创建一个web服务器

Fs 文件操作

得到文件与目录信息:stat

创建一个目录:mkdir

创建文件并写入内容:writeFile,appendFile

读取文件的内容:readFile

列出目录的内容:readdir

8.路由

Nodejs路由搭建--前端路由

Nodejs路由搭建--服务器路由

单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。

浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。因此,对单页应用来说模块化的开发和设计显得相当重要。

事件:hashchange / location.hash

当URL的片段标识符更改时,将触发hashchange事件(跟在#符号后面的URL部分,包括#符号)

hashchange事件触发时,事件对象会有hash改变前的URL(oldURL)和hash改变后的 URL(newURL)两个属性。

路由实现原理:hash哈希值

npm和yarn对比

![npm和yarn对比](C:\Users\Administrator\Desktop\老师二阶段上课html\Day32 Node.js\code\npm和yarn对比.png)

NodeJS及路由的更多相关文章

  1. nodeJS实现路由功能

    前面的话 本文将使用NodeJS实现较复杂应用的路由功能 结构 项目结构如下 代码如下 功能 [router.js] // 加载所需模块 var http = require('http'); var ...

  2. nodejs动态路由

    主要功能:根据输入路由的不同,加载访问不同的HTML页面 在这里我不得不说webstorm真的是一个很棒的开发工具,我学习nodejs也是用的它. 文件目录: first_server.js: 首先我 ...

  3. nodejs之路由

    声明:在写nodejs代码的时候,很多模块可以封装保存起来,以后的项目都会用到. 1.路由模块 var url=require('url'); //封装方法改变res 绑定res.send() fun ...

  4. nodejs添加路由route步骤详解

    首先,毋庸置疑, 新建一个基础express站点.建好之后, 有三个文件需要code(当然,三个步骤顺序随意). 下面以添加一个'/about'为例说明. 1. 在views文件夹里,新建一个jade ...

  5. nodejs基础 -- 路由

    我们要为路由提供请求的URL和其他需要的GET/POST参数,随后路由需要根据这些数据(URL.GET/POST参数)来执行相应的代码. 因此,需要查看HTTP请求,从中提取出请求的URL及GET/P ...

  6. nodejs express 路由并显示html以及访问静态资源设置

    var express = require('express'); var http = require('http'); var fs = require('fs'); var app = expr ...

  7. nodejs学习笔记<三>关于路由(url)

    在网站开发中,路由的设置非常关键.nodejs对路由处理封装了一个比较全面的模块. 来认识下url模块 1)在命令行(cmd)可以直接 node —> url 可直接查看url模块的所有方法. ...

  8. 前端跨域问题的总结&&nodejs 中间层的路由转发

    前后端交互的时候,跨域是避不开的问题. 总结就是如下: 1.Cors 我在做前后端分离的时候,会采用cors 的方法:便于其他源的调用接口,这个可以设置成任意的源头,也可以允许指定的源头. 下面的是n ...

  9. nodejs+express中设置登录拦截器

    在nodejs+express中,采用nodejs后端路由控制用户登录后,为了加强前端的安全性控制,阻止用户通过在浏览器地址栏中输入地址访问后台接口,在app.js中需要加入拦截器进行拦截: /*** ...

随机推荐

  1. VMware Centos7 NAT 无法上网的解决方法

    问题描述: VMware下CentOS7使用NAT上网方式无法连网 解决方案: 网络设置为DHCP自动获取IP 查看主机(不是虚拟机)的相关服务是否打开,主要是VMware DHCP 和VMware ...

  2. js canvas压缩图片和jQuery ajax上传图片简单demo

    原来用的插件,里面东西太乱了,一会jq,一会原生js,本来原生js就不熟,看起来更难受,而且感觉好多东西都是没用的,而且后端php转存文件一直不是很熟悉,正好一起整理一下.就是很简单的一个demo,如 ...

  3. 20184302 实验三《Python程序设计》实验报告

    20184302 2019-2020-2 <Python程序设计>实验3报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:20184302 实验教师 ...

  4. 5、打断点(bpu)

    前言 先给大家讲一则小故事,在我们很小的时候是没有手机的,那时候跟女神聊天都靠小纸条.某屌丝A男对隔壁小王的隔壁女神C倾慕已久,于是天天小纸条骚扰,无奈中间隔着一个小王,这样小王就负责传小纸条了.有一 ...

  5. 如何搭建一个WEB服务器项目(三)—— 实现安卓端联网登录

    安卓端调用服务器登录函数进行验证登录 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验 ...

  6. hadoop与spark的处理技巧(一)Top N处理技巧

    1.MR的topN处理方案,假设所有输入Key都唯一 2.MR的topN处理方案,假设输入Key不唯一 3.spark的topN处理方案,假设所有输入Key都唯一,不使用top()和takeOrder ...

  7. 「雕爷学编程」Arduino动手做(27)——BMP280气压传感器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  8. python操作excel----openpyxl模块

    openpyxl模块支持.xls和.xlsx格式的excel创建,但是只支持.xlsx格式的读取操作,不支持.xls的读取(可以使用xlrd模块来读取,写入操作也可使用xlwt模块),也可使用pand ...

  9. 【常用工具】vagrant的box哪里下?镜像在哪儿找?教你在vagrant官网下载各种最新.box资源

    进入vagrant官网 : https://www.vagrantup.com/ 点击findbox[寻找box],进入有很多box的列表 : https://app.vagrantup.com/bo ...

  10. 解决iframe重定向让父级页面跳转

    原文:http://www.jb51.net/article/40583.htm 有内嵌iframe的页面,当session过期时,点击连接重定向后的跳转会在iframe中跳转,在登录页面中加入下面的 ...