什么是NodeJS?
JS是一种脚本语言,脚本语言的运行,都需要一个解析器,NodeJS则是对于独立运行JS充当解析器的角色;每个解析器都是一种运行环境,允许JS定义各种数据结构和使用运行环境提供内置对象,运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS就相应提供了fs、http等内置对象。---fs:引入文件读取模块,http:一种协议
模块加载---require('模块')
- 模块的使用
- 一个文件为一个模块
- 每个模块都有自己的作用域
- 在模块中,我们用var声明的变量是当前模块的全局变量,不是Nodejs中的全局变量
var a=1;
console.log(global.a)//undefined
- 定义在global上的才是是全局的,我们可以直接调用
global.a=1;
console.log(a);//1
- require()
- require()函数的参数是一个路径,这个路径可以是相对的,也可以是绝对的
*注:相对路径需要加./
require('./serve.js');
require('gulp')//加载nodejs核心模块--node_module文件下的模块
- 文件查找加载方式
- 首先按照模块名称进行查找
- 如果没有找到,则加上.js进行查找
- 如果没有找到,则加上.json查找
- 如果没有找到,则加上.node查找
- 还没找到,则报错
- 访问模块中定义的变量
- global,不推荐使用
- 模块对象module----module对象:保存和提供和当前模块有关的一些信息
- module.exports对象
- module.exports是moudle对象下的字对象,可以通过这个对象对当前模块的局部变量进行访问
//模块文件
var a=1;
module.exports.a=a;//或者写为:module.exports{a:a}
var m1=require('上面的模块');
console.log(m1.a);//1
- 一些全局函数:
- setTimeout()
- clearTimeout()
- setInterval()
- clearInterval()
- 、、、
http协议
- URI和URL
- URI: 统一资源标识符,是Uniform Resource Identifier 的缩写,由URL和URN两个主要子集构成
1.URL:通过描述资源的位置来描述资源
2.URN:通过名字来识别资源,和位置无关 - URL: 统一资源定位符---使用浏览器等访问web页面的时候需要输入的网页地址,是URI的一个子集
- URI
- URI是某个协议方案表示的资源的定位标识符,协议方案是指访问资源所使用的协议类型名称
- 协议方案有http、ftp、mailto、file、telnet等
ftp://ftp.is.co.za.rfc/rfc1808.txt
http://samaritan89.github.io/f2e/js/ajax.html
mailto:sunluyong@gmail.com
telnet://192.0.2.16:80
- URL
- URL主要由三部分组成:方案(协议)+服务器位置+资源路径
https://github.com/lulupy/angular-file-upload
- 通用的URL由九部份组成
<schema>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>
1.schema 协议,通常是http,https
2.user和password现在不常见了,不会在URL明文书写用户名和密码了,都是通过登录的方式
3.host 主机,可以是ip或者域名
4.port 端口号用来区分主机上的进程,方便找到web服务器,http默认是80,https默认是443
5.path是资源的路径,也就是存放位置,不一定和物理路径完全对应,符合web服务器路由约定即可
6.params,在一些协议中需要参数来访问资源,例如ftp是二进制还是文本传输,参数是名值对,用;隔开
7.query:这个是get请求最常用的传递参数方式了 ?a=1&b=2&=3
8.hash也成为片段,设计为标识文档的一部分,很多MVVM框架用作了路由功能