NodeJS及路由
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)
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/
创建模块
导出模块
导出单个: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对比

NodeJS及路由的更多相关文章
- nodeJS实现路由功能
前面的话 本文将使用NodeJS实现较复杂应用的路由功能 结构 项目结构如下 代码如下 功能 [router.js] // 加载所需模块 var http = require('http'); var ...
- nodejs动态路由
主要功能:根据输入路由的不同,加载访问不同的HTML页面 在这里我不得不说webstorm真的是一个很棒的开发工具,我学习nodejs也是用的它. 文件目录: first_server.js: 首先我 ...
- nodejs之路由
声明:在写nodejs代码的时候,很多模块可以封装保存起来,以后的项目都会用到. 1.路由模块 var url=require('url'); //封装方法改变res 绑定res.send() fun ...
- nodejs添加路由route步骤详解
首先,毋庸置疑, 新建一个基础express站点.建好之后, 有三个文件需要code(当然,三个步骤顺序随意). 下面以添加一个'/about'为例说明. 1. 在views文件夹里,新建一个jade ...
- nodejs基础 -- 路由
我们要为路由提供请求的URL和其他需要的GET/POST参数,随后路由需要根据这些数据(URL.GET/POST参数)来执行相应的代码. 因此,需要查看HTTP请求,从中提取出请求的URL及GET/P ...
- nodejs express 路由并显示html以及访问静态资源设置
var express = require('express'); var http = require('http'); var fs = require('fs'); var app = expr ...
- nodejs学习笔记<三>关于路由(url)
在网站开发中,路由的设置非常关键.nodejs对路由处理封装了一个比较全面的模块. 来认识下url模块 1)在命令行(cmd)可以直接 node —> url 可直接查看url模块的所有方法. ...
- 前端跨域问题的总结&&nodejs 中间层的路由转发
前后端交互的时候,跨域是避不开的问题. 总结就是如下: 1.Cors 我在做前后端分离的时候,会采用cors 的方法:便于其他源的调用接口,这个可以设置成任意的源头,也可以允许指定的源头. 下面的是n ...
- nodejs+express中设置登录拦截器
在nodejs+express中,采用nodejs后端路由控制用户登录后,为了加强前端的安全性控制,阻止用户通过在浏览器地址栏中输入地址访问后台接口,在app.js中需要加入拦截器进行拦截: /*** ...
随机推荐
- Docker容器映射到宿主机只有tcp6没有tcp问题
问题描述: Docker容器映射到宿主机后,查询端口连接只有tcp6没有tcp,通过ipv4地址连接时无法连接成功. 处理方法: 1.检查是否开启ipv4端口转发 sysctl net.ipv4.ip ...
- Oracle用decode函数或CASE-WHEN实现自定义排序
1 问题 对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序.但排序规则是默认的,数字.时间.字符串等都有自己默认的排序规则.有时候需要按自己的想法来排 ...
- Dynamics 365 联系人Contact的快速创建窗体,如何知道父窗体是哪个实体,通过window.top.parent.Xrm.Page.getUrl()可以知道父窗体的URL
Dynamics 365 联系人Contact的快速创建窗体,如何知道父窗体是哪个实体?相信有人会遇到过这种头疼的问题,我这里分享一种方式: 在contact快速创建窗体的onload时间执行如下代码 ...
- spring cloud系列教程第四篇-Eureka基础知识
通过前三篇文章学习,我们搭建好了两个微服务工程.即:order80和payment8001这两个服务.有了这两个基础的框架之后,我们将要开始往里面添加东西了.还记得分布式架构的几个维度吗?我们要通过一 ...
- chrome "items hidden by filters"
今天更新chrome 后遇到console不能显示errors的问题,折腾一番后发现在console的Default levels中选择Default即可.
- live2d web端加载moc3模型
大佬博客链接:https://blog.csdn.net/weixin_44128558/article/details/104792345 照着大佬的博客做一下,可以先学会怎么生成bundle.js ...
- Python操作MongoDB代码示例
import pymongo #pip install pymongo安装python操作mongodb的模块 myclient=pymongo.MongoClient(host='127.0.0.1 ...
- Storm-Mongodb详解
这两天研究Trident,踩坑踩的遭不住,来和大家分享下. 首先写入数据库: 先看官方API给我们提供的方法: //这是用来辅助下面MongoInsert的简单实现类 public class Sim ...
- 王艳 201771010127《面向对象程序设计(java)》第十四周学习总结
实验十四 Swing图形界面组件 一理论部分 1.Layout Manager(布局管理器):布局管理器是一组类,实现 java.awt.LayoutManager 接口,决定容器中组件的位置和大小 ...
- PAT-1079 Total Sales of Supply Chain (树的遍历)
1079. Total Sales of Supply A supply chain is a network of retailers(零售商), distributors(经销商), and su ...