本人吐槽!本人是学渣,然后网上关于nodeJS的大多都是坑,简直让人要奔溃了。若非最近总是被要求要nodeJS,坚决不会去碰的。。。天生对cmd命令觉得无比的高大上,尽管一直在用git版本控制器!然后我也和估计和看此文的小白们同一起点,如果有node大神,跪求传授必杀技,吐槽完毕!

首先无非就是什么是NodeJS?

简单的说 Node.js 就是运行在服务端的 JavaScript。

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

谁适合阅读本教程?

如果你是一个前端程序员,你不懂的像PHP、Python或Java等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择。

Node.js 是运行在服务端的 JavaScript,如果你熟悉Javascript,那么你将会很容易的学会Node.js。

当然,如果你是后端程序员,想部署一些高性能的服务,那么学习Node.js也是一个非常好的选择。


学习本教程前你需要了解

在继续本教程之前,你应该了解一些基本的计算机编程术语。如果你学习过Javascript,PHP,Java等编程语言,将有助于你更快的了解Node.js编程。


第一个Node.js程序:Hello World!

脚本模式

以下是我们的第一个Node.js程序:

console.log("Hello World");

保存该文件,文件名为 helloworld.js, 并通过 node命令来执行:

node helloworld.js

程序执行后,正常的话,就会在终端输出 Hello World。

估计就是这么个鬼

交互模式

打开终端,键入node进入命令交互模式,可以输入一条代码语句后立即执行并显示结果,例如:

$ node
> console.log('Hello World!');
Hello World!

可能就是这么个玩意

NodeJS的优缺点(也就是面试的时候用用)

优点:1. 高并发(最重要的优点)

2. 适合I/O密集型应用

缺点:1. 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循环),将会导致CPU时间片不能释放,使得后续I/O无法发起;

解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起;

2. 只支持单核CPU,不能充分利用CPU

3. 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃

原因:单进程,单线程

解决方案:(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;

(2)开多个进程监听同一个端口,使用cluster模块;

4. 开源组件库质量参差不齐,更新快,向下不兼容

5. Debug不方便,错误没有stack trace

 适合NodeJS的场景

1. RESTful API

这是NodeJS最理想的应用场景,可以处理数万条连接,本身没有太多的逻辑,只需要请求API,组织数据进行返回即可。它本质上只是从某个数据库中查找 一些值并将它们组成一个响应。由于响应是少量文本,入站请求也是少量的文本,因此流量不高,一台机器甚至也可以处理最繁忙的公司的API需求。

2. 统一Web应用的UI层

目前MVC的架构,在某种意义上来说,Web开发有两个UI层,一个是在浏览器里面我们最终看到的,另一个在server端,负责生成和拼接页面。

不讨论这种架构是好是坏,但是有另外一种实践,面向服务的架构,更好的做前后端的依赖分离。如果所有的关键业务逻辑都封装成REST调用,就意味着在上层 只需要考虑如何用这些REST接口构建具体的应用。那些后端程序员们根本不操心具体数据是如何从一个页面传递到另一个页面的,他们也不用管用户数据更新是 通过Ajax异步获取的还是通过刷新页面。

3. 大量Ajax请求的应用

例如个性化应用,每个用户看到的页面都不一样,缓存失效,需要在页面加载的时候发起Ajax请求,NodeJS能响应大量的并发请求。  总而言之,NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景。

 

NodeJs教程(介绍总结!)终于在网上找到一个靠谱点的了T_T相关推荐

  1. 网上找到一个可以用来测试网站安全性能的测试ASP页面

    之前在找到一个验证自己网站安全性能的ASP检查页面 而现在大多数人用它来做ASP挂马程序使用  这儿把代码贴出来 有兴趣的朋友可以看看 毕竟知己知彼才能更好去防范控制 这儿贴出代码希望不要被用在恶意方 ...

  2. 在网上找到一个CSS hack列表,记录在这里以分析css的浏览器兼容性

    另外摘抄一份目前的css浏览器兼容问题汇总,记录在这里自己好好学习一下 CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的 ...

  3. 从网上找到一个清晰CSS视频教程和大家分享一下

    http://www.cnblogs.com/yaotong/archive/2008/04/22/1165275.html 转载于:https://www.cnblogs.com/smallfa/a ...

  4. 网上找到一个用不同颜色显示表格奇偶行的例子

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  5. 如何在网上找到并下载你想要的软件

    此文谨献给那些还不会熟练的在网上找到正确软件并下载的人. 好像对于好多人来说从网上找到一个非假冒非病毒木马之类的软件还是有点困难.我今天简单的吧方法介绍一下,主要为了我可爱的学弟学妹们别再为这些小事烦 ...

  6. python如何播放视频_在网上看到一个视频!怎么下载下来啊?

    原标题:在网上看到一个视频!怎么下载下来啊? 大家早,我是云景,之前我给大家连续分享过三篇关于下载网页视频的技巧,但是有些同学觉得难!因为里面用到了Python的知识. 其实,我之前也分享过一个更加简 ...

  7. python怎么下载-在网上看到一个视频!怎么下载下来啊?

    原标题:在网上看到一个视频!怎么下载下来啊? 大家早,我是云景,之前我给大家连续分享过三篇关于下载网页视频的技巧,但是有些同学觉得难!因为里面用到了Python的知识. 其实,我之前也分享过一个更加简 ...

  8. 找到一个PR2018CC中文PJ版

    分享:前几天为了视频剪辑从网上找到一个亲试可用的PR2018CC中文PJ版. 下载地址: 链接: https://pan.baidu.com/s/1XM0OV1rDLpBjtwVul6O5pg 提取码 ...

  9. 知识是什么计算机如何表示知识,计算机基础知识教程介绍

    计算机基础知识教程介绍 在生活.工作和学习中,大家或多或少都会用到过祝福语吧,祝福语有助于人与人之间感情的增进和交流.那什么样的祝福语才是好的祝福语呢?以下是小编为大家整理的端午节发给客户的祝福语计算 ...

最新文章

  1. mysql的复合类型_PLSQL 复合类型数据
  2. netbeans卸载 linux,NetBeans_6.1自己使用。(linux-ubuntu下)
  3. Py之matplotlibseaborn :matplotlibseaborn绘图的高级进阶之高级图可视化(基础图(直方图等),箱线图、密度图、小提琴图等)简介、案例应用之详细攻略
  4. 【QM-03】Dynamic Modification Rule (动态修改规则)
  5. (有图片)汇编工具dosbox下自动mount及切换虚拟目录使用步骤。
  6. Hive自定义UDF UDAF UDTF
  7. 【转】!C#中的Stream相关
  8. LeetCode MySQL 1511. Customer Order Frequency
  9. ubuntu两张网卡时的网络设置
  10. chrome 独立安装包下载
  11. JAVA商城系统源码
  12. uniapp 评论列表,展开,收起,全部,局部刷新功能
  13. Clion笔记- 菜单栏不见了...
  14. 不是所有数学命题都是可以被证明或证伪
  15. Attention概述
  16. Kubernetes 集群部署 NFS-Subdir-External-Provisioner 存储插件
  17. 运行时动态引入JS文件
  18. iOS苹果相册“地点”相簿效果实现浅谈
  19. lammps教程:薄膜渗透模拟(3)--不同孔隙率对过滤效果的影响
  20. ffmpeg 添加 sei 编码信息和解析

热门文章

  1. php框架升级,【PHP开发框架】thinkphp怎么升级
  2. print_r php encode,详细介绍PHP在调试时echo print() print_r() var_dump()的区别分享
  3. 应用OpenCV进行图像旋转和平移
  4. 电子漫画 - 轻轻松松
  5. 光电耦合NEC2051 的输入输出特性
  6. 基于UC3843的直流高压模块
  7. finereport 登录界面的代码文件_Confluence 6 自定义登录界面
  8. linux grep 例子,Linux中Grep常用的15个例子
  9. html弹出保存文件对话框_这样操作,3分钟不要就可以在GIS office中轻松导入坐标点文件!...
  10. EndNote 高校_【工具】EndNote使用小记