nodejsDay
2021-06-19 09:06
标签:报错 布尔 程序 函数 window下 为什么 初中 dom 另一个 1. 什么是NodeJs? 2.什么是运行环境? 通俗讲指一种语言想要实现相关的功能需要另外一种事物(可以使语言也可以是其他的东西)作为它的载体或这运行平台 在客户端,javascript想要实现某种功能是需要浏览器提供支持,如果没有浏览器提供支持是完成不了的 3. 为什么NodeJs是javascript的运行环境? 因为NodeJs采用的是Google Chrome浏览器的V8引擎,而V8引擎就是Javascript的运行环境 但是NodeJs是服务器端的运行环境 4. 服务器端语言有什么特点呢? 5. NodeJs 有什么特点? 5.1 以上4的特点都有 6. 什么是事件驱动? 7. Nodejs的有哪些事件驱动? 7.1 接受客户端的请求 8. 什么是非阻塞I/O 通俗来讲 阻塞I/O 非阻塞I/O 9. 单线程 单线程:程序按照逻辑顺序执行,前面的必须处理完成,后面的才会执行,即在同一个时间里面只能做一件事情 多线程:程序在一个时间里面可以做多个事情 能够提高效率 javascript 是一门单线程语言,为什么javascript不能是多线程? javascript作为单线程,由其内容所决定,在浏览器环境中,JavaScript的主要用操作DOM 10. 问题来了,既然javascript是单线程,那么为什么nodejs会有非阻塞I/O? I/O操作都是比较耗时的,这个会阻塞其他的任务进行,javascript的设计者认为,没有必要等待I/O的完成, 11.Nodejs端的javascript和浏览器端的javascript的相同点和不同点 基本语法、数据类型相同 声明变量、函数 不同点: 全局对象不同 在浏览器端 # window 因为js的运行环境不同,所以两者的全局对象下的属性和方法基本上都是不同的 (即window下的属性和方法在nodejs中没有,global中的属性和方法在浏览器端也是没有的) 12.NodeJs采用大量的es6简写方法,其中以箭头函数居多,箭头函数的简写有以下几种 简写形式如下: var fn1 = (a,b,c)=>{ 2. 当函数只有一个参数的时候 简写形式如下: var fn2 = a =>{ 3. 当函数体只有一条语句,且为 return 语句 var fn3 = function(a,b)=>{ 简写形式如下: var fn3 = (a,b)=>a+b; 一般情况下一个模块代表是一个功能的集合,能够完成某个特定的功能,模块一般为对象或者是一个函数 在nodejs中模块分为系统模块和自定义模块 系统模块 也叫内置模块,nodejs这个运行环境自己提供,不需要另外下载和安装 自定义模块 需要自己定义封装,然后引入才能够使用 nodejs中有大量的模块为什么不把这些模块融合在一起? 有一些程序只需要使用某些模块(如文件读取功能)来完成一个特定的事情,所以为了效率,完全没有必要引入其他的模块,你用啥,你就require啥。 14.NodeJs 内置模块 HTTP 1. 服务器的创建 03.js 如果想修改程序,必须中断当前运行的服务器,重新node一次,刷新,才行。 2. 思考,那么我们写的网页如何通过服务器被访问得到? 1. 总不能通过在js中不断的创建节点,添加节点来完成吧,需要结合fs模块来完成 3.如何通过访问nodejs服务器访问的是一个完整的html页面 4. 回调函数参数req的讲解 5.nodejs没有存储文件的web容器 6. html中每一个img script 和link标签都会发起请求 都有路由路径 7. html中引入css和javascript 注意在html骨架中引入的css和javascropt可以不设置header头,建议加上 注意!!!!!!! eg: node C:\课件2\Server_13\NodeJs_01 这是错误的,会发现找不到文件 15.http 模块其他api res.setHeader("name","value"); 设置请求头 res.statusCode 设置状态码 状态码为三位(否则报错),可以随便设置 ,但是一般情况下设置想对应的状态码 res.statusMessage 设置状态信息 res.write() 发送给浏览器的网页内容 注意:所有的write和end里面的参数必须为字符串或者buffer类 nodejsDay 标签:报错 布尔 程序 函数 window下 为什么 初中 dom 另一个 原文地址:http://www.cnblogs.com/happypang/p/7193125.html
NodeJs不是一门编程语言,是一个javascript的运行环境,NodeJs是采用C++语言编写而成的一个javascript的解释器
操作系统的运行环境,就是电脑硬件本身,如果连电脑都没有,那么操作系统无法运行
4.1 进行http通信 接受http请求,响应http请求
4.2 操作数据库 对数据库里面的内容可以进行增删改查
4.3 可以操作本地文件,对本地文件进行读写,创建和删除等
5.2 是javascript的运行环境
5.3 事件驱动
5.4 非阻塞I/O
5.5 单线程
事件:在客户端js中有 点击按钮事件/鼠标事件/键盘事件等都叫做事件
事件驱动:有鼠标或者键盘引起一连串的操作动作叫做事件驱动
简单理解:通常事件驱动会伴随着相对应的程序处理或者函数的执行
7.2 对文件进行读写
7.3 操作数据库
I/O : input/output 输入输出
对于磁盘 I/O = 读写
对于网络 I/O = 收发请求
指在执行I/O的过程时候,会阻塞其他应用程序的进行,只有等待这个I/O完成后,才会进行其他的操作
指在执行I/O的过程时候,不会等待其应用程序执行完成后在执行其他应用程序,当I/O结束后,在回头处理这个结果。 即异步
如:你在点击按钮出现弹窗的时候,就不可以对浏览器做出其他的相应操作
如 :迅雷同时下载多个小电影
如果JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这个时候没法搞?
在I/O任务完成之前javascript完全可以继续执行其他的任务,直到I/O任务完成后再回头执行该任务的返回就行。
所以javascript在设计之初中将这些耗时的I/O等操作封装为了异步的方法,等到这些任务完成后就将后续的处理操作封装为JavaScript任务放入执行任务队列中,等待JavaScript线程空闲的时候被执行
相同点:
数值、字符串、对象、数组、函数、布尔、undefined
不同的数据类型的属性和方法
在NodeJs # global
1. 一般函数的写法函数
var fn1 = function(a,b,c){
......代码块......
console.log("fn1");
}
......代码块......
console.log("fn1");
}
var fn2 = function(a){
......代码块......
console.log("fn1");
}
......代码块......
console.log("fn1");
}
return a+b;
}
13.Module(模块)
ctrl+c,就可以打断挂起的服务器程序。此时按上箭头,能够快速调用最近的node命令。
通过引入fs模块来对html文件进行读取,然后把读取到的数据输出到html当中
见案例04.js
req.method 请求方式
req.url 请求的路径
req.header 请求头
nodejs不像传统的老牌服务器apache不能提供一个静态的web容器 一个url路径不代表有一个资源库
案例中使用的大量的相对路径 是相对于cmd命令命板中光标挂起的所在的文件夹,不是相对于 *.js 文件