一 Node.js 简介

 1.1 官网 https://nodejs.org/en/

官网介绍:

Node.js是一个构建在 Chrome 浏览器V8引擎上的 JavaScript 运行环境

Node.js 使用了事件驱动、非阻塞I/O模型,这些都使它轻量、好用。

Node.js 的包生态(npm),是世界上最大的开源库生态系统。

 ps: 解决性能问题而发明的 Node.js

异步 I/O:绝大多数的网站 I/O 是非常多的,I就是 input 数据的读取,O 就是 Output 数据的写入,

但是 I/O 的时候 CPU 是命令磁盘去做事情,此时 CPU自己就闲置了

这种模式叫做同步 I/O

同步(synchronous):当系统遇见了一个需要耗费大量时间的事情的时候,选择死等。

异步(Asynchronous):当系统遇见了一个需要耗费大量时间的事情的时候,不死等,先做后面的事情,耗时事情做完之后,执行回调函数

Node.js 的哲学:是一个专注于实现高性能 Web 服务器优化的专家,几经探索,几经挫折后,

遇到 V8 而诞生的项目。

Node.js 向下兼容做的非常好,所有的高版本,会 deprecate(建议放弃)一些老版本的API,

但不会完全不支持

在 Node.js 和 io.js 首次融合的4.0.0版本中,开发者们可以看到其对 ES6 特性的扩展支持,

并且大多数都是默认启用的,比如:classes、typed arrays、generators、Promises、Symbols、collections、arrow functions、block scoping)、template strings等等。

1.2 安装

到官网下载(有稳定版,最新版)

路径中不要有中文

安装完成后: 命令行  $  node -v  查看版本

注意 $ 符号是 Linux 系统中(后面会学习)命令行中普通用户的表示符号,

注意,我们输入的时候不要输入 $,这里只是一个表示符号

$ cls  清屏

$ node xxx.js  运行 js 文件,可直接交文件拖进来

$ d: 到 d 盘

$ cd  xxx 进入 xxx 文件夹

此时有两种运行环境

1 浏览器

2 node

二 开发服务器

2.1 案例: (文件要放在 c 盘)

注意 node  文件的路径   绝对路径

 结束挂起  ctrl + c

此时 光标挂起,没有返回, 表示此时 node 正在执行一个监听

再浏览器:127.0.0.1:2000 回车 访问

如果你要修改程序,此时刷新浏览器没用,必须 ctrl+c 打断之后重新运行

页面运行结果:

命令行 node 运行后,就是跑了一个服务器,若是 断开(ctrl + c ),再访问页面就访问不到了

在 node.js 文件的最后添加语句: console.log("node.js运行");  会在 cmd 中 node运行后显示

2.2 Node.js 是后台的东西

NodeJS 是 JavaScript 工作在了服务器端,太牛逼啦!我们的JS现在上天入地!

查看源代码,如果代码中有运算,比如: (3+4),我们发现数字 7 是直接写上去的,

没有 (3+4)的运算痕迹

原因就是 NodeJS 运行在服务器端,而不是浏览器端。

服务器计算了数字 7 之后,发给了浏览器就是扁平的、纯粹的 HTML 了,没有任何程序。

至此我们已经证明了 NodeJS 运行在服务器端。我们使用 JS 开始开发服务器:GET请求的处理、POST请求参数的处理、数据库的增删改查、Cookie、 session等等、路由。

2.3 NodeJS 没有服务器架构

Node.js 是一个让 JavaScript 运行在服务器端的开发平台,它让 JavaScript 的触角伸到了服务器端。

但 Node 似乎和其他服务器端语言比如 PHP、ASP、JSP 有点不同:

● Node.js 不是一种独立的语言,与 PHP、JSP、Python、Perl、Ruby 的“既是语言,也是平台”不同,Node.js的使用JavaScript进行编程,NodeJS是一个工具,语言仍然是 JavaScript。

● 与 PHP、JSP 等相比,Node.js 跳过了 Apache、Tomcat、Nginx、IIS 等 HTTP 服务器,它自己不用建设在任何服务器软件之上。Node.js 的许多设计理念与经典架构(LAMP)有着很大的不同,可以提供强大的伸缩能力。

Node.js 自身哲学,是花最小的硬件成本,追求更高的并发,更高的处理性能

  

Node.js 没有根目录的概念。

三 Node.js 特点

3.1 单线程

在 Java、PHP 或者 .net 等服务器端语言中,会为每一个客户端连接创建一个新的进程。而每个进程需要耗费大约 2MB 内存。也就是说,理论上一个 8GB 内存的服务器可以同时连接的最大用户数为 4000 个左右。要让 Web 应用程序同时支持更多的用户,就需要增加服务器的数量或者增加服务器的内存数,而 Web 应用程序的硬件成本当然就上升了。

Node.js 不为每个客户连接创建一个新的线程,而仅仅使用一个线程(thread)。当有用户连接了,就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让 Node.js 程序宏观上也是并行的。使用 Node.js,一个8GB内存的服务器,可以同时处理超过4万用户的连接

另外,单线程的带来的好处,还有操作系统完全不再有线程创建、销毁的时间开销

输出中文乱码: 查 node API:  http 模块   ctrl + f :   setHeader 选择  response.setHeader('Content-Type', 'text/html;charset=utf-8');

文件的保存类型也要设置为 utf-8

写 路径 时  ./ 在linux 必须加

转载于:https://www.cnblogs.com/Bijou/p/10211459.html

Node.js(爱前端) 一相关推荐

  1. 「跨域」利用node.js实践前端各种跨域方式(上)

    前言 常言道,"读万卷书,不如行万里路".技术的学习也是如此,唯有实践才能更清楚的明白原理和加深印象,因此本文会利用node.js对前端的各种跨域方式进行实践,强烈建议一步一步跟着 ...

  2. 【Node.js】前端页面仔的必修课,认识node

    文章目录 前言 概念 node是个基于v8引擎的js运行环境 node使用了一个事件驱动,非阻塞式I/O的模型 node环境系统架构 应用场景 优点 前言 部分知识点来源:极客时间相关node课程,然 ...

  3. Node.js 给前端带来了什么?

    在软件开发领域,前端工程师曾经是一个比较纠结的职业.在Web技术真正发展起来之前的相当长一段时间里,由于技术门槛很低,前端工程师行业一直是鱼龙混杂的状态.其中很多号称是Web开发者的人实际上并没有什么 ...

  4. 使用Node.js打包前端

    1.下载并安装node.js 下载地址 2.准备配置文件 在demo-html目录下,创建一个名为.editorconfig的文件,内容如下: root = true[*] charset = utf ...

  5. php nodejs 慢多少,node.js,_nodejs前端频繁post 导致很卡的问题,node.js - phpStudy

    nodejs前端频繁post 导致很卡的问题 前端js,post过去,频繁的点击,就很卡. 这是nodejs的代码: var express = require('express'); var bod ...

  6. node.js编写前端接口,服务器创建、数据库连接、路由挂载,增删改查、分页查询接口的编写

    1.文件准备 我们要准备三个文件来演示最基础的服务器创建.数据库连接路由挂载,增删改查.分页查询接口的编写.其中服务器创建单独一个文件为app.js,数据库连接为一个文件为pool.js,最后一个为接 ...

  7. Node.js | 从前端到全栈的必经之路

  8. [知乎回答] 前端是否要学习 Node.js?

    大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12很多小伙伴都表示收获颇丰.一起学的大多数200行左右的Node.js源码.今天推荐这篇文章.(刚刚在写明天掘金要发的 ...

  9. 前端进阶必备Node.js,你得了解一下

    作为前端开发,工作中肯定离不开 JavaScript ,而 Node.js 是基于 JavaScript 语言和 V8 引擎的 Web 服务器项目,让你可以直接使用 JavaScript 来搭架服务器 ...

最新文章

  1. mysql主从复制,半同步,主主复制架构的实现
  2. Layui框架 中table解决日期格式问题
  3. 集合php,PHP问题集合
  4. MFC 字符串截取成数组 wcstok
  5. 招远西苑学校计算机老师,招远市西苑学校积极开展综合实践活动
  6. Cesium:加载本地高程/地形数据
  7. 时间或许能改变那一切
  8. Android中设置位移动画的停止
  9. 九款Web服务器性能压力测试工具
  10. 最近在上海浦东新区的租房经历
  11. MBR和 GPT互转导致Windows无法开机,镜像备份找不到
  12. 《雍正皇帝·九王夺嫡》社会文化专有词泰译研究(称谓)
  13. 【ZeloEngine】反射系统填坑小结
  14. 使用CXF框架Jax-rs规范编写WebService服务端
  15. 一次培训机构的面试经历
  16. OpenCV学习笔记5
  17. Python http.server 服务器
  18. 怎样快速实现整片文档中英互译
  19. 必备武器-skycc营销软件
  20. HanLP极致简繁转换详细讲解 1

热门文章

  1. Linux 驱动开发之内核模块开发 (三)—— 模块传参
  2. 静态库和动态库的分析
  3. Linux下查看文件和文件夹大小的df和du命令
  4. [Redux/Mobx] Redux怎样设置初始状态?
  5. [Redux/Mobx] Redux和vuex有什么区别?
  6. [Redux/Mobx] redux-saga和redux-thunk有什么本质的区别?
  7. 前端学习(3044):vue+element今日头条管理-组件目录和组件名
  8. 前端学习(2923):vue中的计算属性
  9. [html] 什么是本地存储的有效期?
  10. [vue] 为什么data属性必须声明为返回一个初始数据对应的函数呢?