您的位置:首页 > Web前端 > Node.js

node.js学习笔记分享

2020-03-27 19:53 1041 查看

node.js不是一门语言 不是框架
是一个jav代码ascript运行时环境, 简单点来说Node.js 可以解析和执行javascript代码 以前只有浏览器可以执行javascipt ,现在的javascript可以脱离浏览器运行

js=ECMAScript+Dom+Bom

Node.js没有Bom和Dom 在node这个js执行环境中,为Javascript提供了一些服务器级别的操作API
文件读写,网络服务器的构建 网络通信 http服务器 等处理

node,js特性
事件驱动
非阻塞IO驱动
轻量高效

node能做什么?
web服务器后台
命令行工具

命令行工具使用
cls清屏
dir 查看当前文件中有哪些子文件
打开文件所在目录 shift+鼠标右键 可以打开文件所在目录
直接右键git bash here 也可以
终端里输入cd 命令也可以

require是一个方法
他的作用是用来加载模块的
在node中模块有三种
1.具名的核心模块 例如
fs文件操作模块
http网络服务构建模块
path 路径处理模块
2.用户自己编写的文件模块
相对路径必须加./ 去掉后会当作核心模块处理 报错 后缀名可加可不加

node中没有全局作用域,只有模块作用域
内部引入外部,外部不会影响内部

既然是模块作用域,那模块与模块之间如何通信?
require 两个作用
1.加载文件 并执行代码
2.拿到被加载文件导出的接口对象
exports默认是一个空对象

IP地址用来定位计算机
端口号用来定位具体应用程序
所有需要联网通信的应用程序都需要端口号

var http =require(‘http’)
var sever=http.createSever()
servr.on(‘request’.function(req,res)){
//服务器默认发送的数据是utf-8编码的内容。但是浏览器不认识
res.setHeader(‘Content-type’,‘text/plain’;charset=utf-8)
res.end(‘hello 世界’)
}
sever.listen(3000,function(){
console.log(‘Sever is running’)
})

url资源定位符
一个url最终其实是要定位到一个资源的

http://tool.oschina.net/commons
不同的资源对应不同的Content-type 图片不需要指定编码,一般只为字符数据指定编码

当采用了无分号的代码风格的时候,当代码是以( 【 `开头是,前面补一个分号开头

在Es6中得` 字符串中。可以使用${}来引用变量

模板引擎 是将模板文件和数据通过模板引擎生成一个HTML代码

客户端渲染和服务器端渲染最大的区别是究竟是谁来完成html文件得完整拼接,如果在服务器端完成,然后返回客户端就是服务器端渲染,如果前端做了更多的工作完成了Html的拼接,就是客户端渲染

服务端渲染,响应的就是最后的结果,客户端不用再做任何处理
客户端渲染最少ing求两次,第一次是请求页面,第二次是页面数据,第二次请求常用ajax 在不刷新整个页面的情况下实现异步请求

服务器端渲染的优缺点是怎样的?
优点
前端耗时少。因为后端拼接完了html,浏览器只需要直接渲染出来。
有利于SEO。因为在后端有完整的html页面,所以爬虫更容易爬取获得信息,更有利于seo。
无需占用客户端资源。即解析模板的工作完全交由后端来做,客户端只要解析标准的html页面即可,这样对于客户端的资源占用更少,尤其是移动端,也可以更省电。
后端生成静态化文件。即生成缓存片段,这样就可以减少数据库查询浪费的时间了,且对于数据变化不大的页面非常高效 。
缺点

不利于前后端分离,开发效率低。使用服务器端渲染,则无法进行分工合作,则对于前端复杂度高的项目,不利于项目高效开发。另外,如果是服务器端渲染,则前端一般就是写一个静态html文件,然后后端再修改为模板,这样是非常低效的,并且还常常需要前后端共同完成修改的动作; 或者是前端直接完成html模板,然后交由后端。另外,如果后端改了模板,前端还需要根据改动的模板再调节css,这样使得前后端联调的时间增加。
占用服务器端资源。即服务器端完成html模板的解析,如果请求较多,会对服务器造成一定的访问压力。而如果使用前端渲染,就是把这些解析的压力分摊了前端,而这里确实完全交给了一个服务器。

客户端渲染的优缺点是怎样的?
优点:  
前后端分离。前端专注于前端UI,后端专注于api开发,且前端有更多的选择性,而不需要遵循后端特定的模板。
体验更好。比如,我们将网站做成SPA或者部分内容做成SPA,这样,尤其是移动端,可以使体验更接近于原生app。
缺点
前端响应较慢。如果是客户端渲染,前端还要进行拼接字符串的过程,需要耗费额外的时间,不如服务器端渲染速度快。
不利于SEO。目前比如百度、谷歌的爬虫对于SPA都是不认的,只是记录了一个页面,所以SEO很差。因为服务器端可能没有保存完整的html,而是前端通过js进行dom的拼接,那么爬虫无法爬取信息。 除非搜索引擎的seo可以增加对于JavaScript的爬取能力,这才能保证seo。

总结 : 客户端渲染不利于SEO 搜索引擎优化
服务端 渲染是可以被爬虫抓取到的,客户端异步渲染是很难被爬虫抓取到
所以你会发现真正的网站既不是纯异步也不是纯服务器端渲染出来的,而是两者结合来做的,例如京东的商品列表就采用服务器端渲染,目的是为了SEO搜索引擎优化,而他的商品评论采用的是客户端渲染,为了用户体验,且不需要SEO优化

  • 点赞
  • 收藏
  • 分享
  • 文章举报
辣鸡王八鸭 发布了26 篇原创文章 · 获赞 0 · 访问量 390 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: