导图社区 node.js总结
(包含项目的做法和步骤以及各种文档的链接说明及使用方法和博客)此为一周多所学的总结,花了四个小时写的,学前端的宝宝值得一看!
vue学习的总结,主要是vue-router和vuex,希望对各位能有所帮助!
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
node.js总结
Node.js简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 node.js特点: 单线程在Java、PHP或者.net等服务器端语言中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约2MB内存。也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。要让Web应用程序支持更多的用户,就需要增加服务器的数量,而Web应用程序的硬件成本当然就上升了。 Node.js不为每个客户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让Node.js程序宏观上也是并行的。使用Node.js,一个8GB内存的服务器,可以同时处理超过4万用户的连接。 非阻塞 I/O(异步)当在访问数据库取得数据的时候,需要一段时间。在传统的单线程处理机制中,在执行了访问数据库代码之后,整个线程都将暂停下来,等待数据库返回结果,才能执行后面的代码。也就是说,I/O阻塞了代码的执行,极大地降低了程序的执行效率。 由于Node.js中采用了非阻塞型I/O机制,因此在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。当某个I/O执行完毕时,将以事件的形式通知执行I/O操作的线程,线程执行这个事件的回调函数。为了处理异步I/O,线程必须有事件循环,不断的检查有没有未处理的事件,依次予以处理。阻塞模式下,一个线程只能处理一项任务,要想提高吞吐量必须通过多线程。而非阻塞模式下,一个线程永远在执行计算操作,这个线程的CPU核心利用率永远是100%。这是一种特别有哲理的解决方案:与其人多,但是好多人闲着;还不如一个人玩命,往死里干活儿。 事件驱动在Node中,客户端请求建立连接,提交数据等行为,会触发相应的事件。在Node中,在一个时刻,只能执行一个事件回调函数,但是在执行一个事件回调函数的中途,可以转而处理其他事件(比如,又有新用户连接了),然后返回继续执行原事件的回调函数,这种处理机制,称为“事件循环”机制。Node.js底层是C++(V8也是C++写的)。底层代码中,近半数都用于事件队列、回调函数队列的构建。用事件驱动来完成服务器的任务调度,用一个线程,担负起了处理非常多的任务的使命。
node.js的基本用法
搭建web服务器
1. 加载http模块
2. 创建http服务
3. 服务端对象监听request 请求事件
4. 启动http服务,监听端口
npm
开发依赖:$ npm install 包名 -D
项目依赖:$ npm install 包名 -S
$ npm install 包名
$ npm install 包名 -global
$ npm init -y
nodejs 读写文件
读文件
读文件:fs.readFile(file[, options], callback) * 参数1:要读取的文件路径,必填。 * 参数2:读取文件时的选项,比如:文件编码utf8。选填。 * 参数3:文件读取完毕后的回调函数,必填。 读文件注意: * 该操作采用异步执行 * 回调函数有两个参数,分别是err和data * 如果读取文件时没有指定编码,返回的是二进制数据,如指定编码utf8,会返回指定的编码数据。 * 只要异步操作,回调函数第一个都是错误对象err优先
写文件
写文件:fs.writeFile(file, data[, options], callback); * 参数1:要写入的文件路径,必填。 * 参数2:要写入的数据,必填。 * 参数3:写入文件时的选项,比如:文件编码。 * 参数4:文件写入完毕后的回调函数,必填。 写文件注意: * 该操作采用异步执行 * 如果文件存在则替换原内容 * 默认写入的文件编码为utf8 * 回调函数有1个参数:err,表示在写入文件的操作过程中是否出错了。 * 如果出错了err != null,成功时 err === null * 写入文件(文件不存在则自动创建) 注:writeFile写入文件是先把文件内容清空在写入,如果要追加写入的话可以使用appendFile函数
express的web框架
如何搭建路由
用ejs如何写页面
node项目(管理系统)
接口定义
前端板块
public
index.html
html
children1.html
children2.html
children3.html
common
children1.css
children2.css
children3.css
js
page.js
register.js
login.js
content
user.js
home.js
addGoods.js
goodsList.js
home
sliderNav.js
lib
plugin
img
自己本身引入的图片
项目生成的图片
后端板块(MVC层)
M:model
页面1的数据层
页面2....
页面3...
V:views
err.ejs
index.ejs
C:controller
页面1的逻辑层
页面1...
前后端交互板块
package.json
package_lock.json
app.js
utils
database.js
routes
goods.js
node_modules
bin
www
非数据型数据库
mongodb
mongoose
两者的基本使用