nodejs安装与环境变量配置[通俗易懂]

nodejs安装与环境变量配置[通俗易懂]NodeJsNode.js简介发展史特性模块下载nodejs系统环境nodejs(msi)方式的安装nodejs(zip)方式的安装环境配置Linux下安装Node测试参考资料Node.js简介Node是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。发布于2009年5月,由R…

大家好,又见面了,我是你们的朋友全栈君。

Node.js简介

Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

发展史

  • 2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。
  • 2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node包,随后几个月里,有人开始使用Node开发应用。
  • 2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。
  • 2010年年底,Node获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node的发展。
  • 2011年7月,Node在微软的支持下发布Windows版本。

特性

V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升,又节省了开发成本。对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。

Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感觉。
虽然让Javascript运行于服务器端不是Node的独特之处,但却是其一强大功能。不得不承认,浏览器环境限制了我们选择编程语言的自由。任何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能通过Javascript来实现。虽然还存在其他一些支持Javascript在服务器端 运行的平台,但因为上述特性,Node发展迅猛,成为事实上的平台。

在Node启动的很短时间内,社区就已经贡献了大量的扩展库(模块)。其中很多是连接数据库或是其他软件的驱动,但还有很多是凭他们的实力制作出来的非常有用的软件。

最后,不得不提到的是Node社区。虽然Node项目还非常年轻,但很少看到对一个项目如此狂热的社区。不管是新手,还是专家,大家都围绕着项目,使用并贡献自己的能力,致力于打造一个探索、支持、分享、听取建议的乐土。

Node的优点

  1. Node作为一个新兴的前端框架,后台语言,有很多吸引人的地方(RESTful API,单线程)
  2. Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件循环(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。(非阻塞IO,V8虚拟机,事件驱动)

模块

Node使用Module模块去划分不同的功能,以简化应用的开发。Modules模块有点像C++语言中的类库。每一个Node的类库都包含了十分丰富的各类函数,比如http模块就包含了和http功能相关的很多函数,可以帮助开发者很容易地对比如http,tcp/udp等进行操作,还可以很容易的创建http和tcp/udp的服务器。

要在程序中使用模块是十分方便的,只需要如下:

在这里,引入了http类库,并且对http类库的引用存放在http变量中了。这个时候,Node会在我们应用中搜索是否存在node_modules的目录,并且搜索这个目录中是否存在http的模块。如果Node.js找不到这个目录,则会到全局模块缓存中去寻找,用户可以通过相对或者绝对路径,指定模块的位置,比如:

var myModule = require('./myModule.js');

模块中包含了很多功能代码片断,在模块中的代码大部分都是私有的,意思是在模块中定义的函数方法和变量,都只能在同一个模块中被调用。当然,可以将某些方法和变量暴露到模块外,这个时候可以使用exports对象去实现。

下载nodejs

nodejs
在这里插入图片描述
该安装包有在windows下有2种形式

  • **.msi的安装
  • **.zip的安装

系统环境

在这里插入图片描述

nodejs(msi)方式的安装

下载完成后,双击“node-v10.15.3-x64.msi”,开始安装Node.js
在这里插入图片描述
点击【Next】按钮
在这里插入图片描述
勾选复选框,点击【Next】按钮
在这里插入图片描述
修改好目录后,点击【Next】按钮
在这里插入图片描述
安装完后点击【Finish】按钮完成安装
在这里插入图片描述
其实这样的方式没有任何难度,一路next,直到finsh(如果你想修改安装路径的话,不要一直狂点next

此处说明下:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西

nodejs(zip)方式的安装

在这里插入图片描述
解压之后直接把名字修改为node-v10.15.3,里面的目录往前提一级。最后整体如下图。
在这里插入图片描述
此处说明下:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西

环境配置

写在前面的话:
这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。

  1. F:\SP\node新建一个文件夹,名称为node_global
  2. F:\SP\node新建一个文件夹,名称为node_cache
  3. 如果你是zip安装直接接着往下走,如果你是msi安装方式,请直接到第五步;
  4. 配置npm系统环境path变量**“我的电脑”-右键-“属性”-“高级系统设置”-“高级”-“环境变量”-“path”**,如图;
  5. 创建完两个空文件夹之后,打开cmd命令窗口,输入;
  6. npm config set prefix “F:\SP\node\node_global”;
  7. npm config set cache “F:\SP\node\node_cache”;
  8. “我的电脑”-右键-“属性”-“高级系统设置”-“高级”-“环境变量”;
  9. 在【系统变量】下新建【NODE_PATH】,输入【F:\SP\node\node_global\node_modules
  10. 将【用户变量】下的【Path】修改为【F:\SP\node\node_global】
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Linux下安装Node

下面介绍下Node的安装,首先在nodejs的网站上根据操作系统下载相关的安装包,对于Ubuntu [6] (linux)下的安装,可以如下进行:

$sudo apt-get update
$sudo apt-get install node

或者:

$sudo apt update
$sudo apt install node

测试

配置完后,安装个module测试下,我们就安装最常用的express模块,打开cmd窗口,
输入如下命令进行模块的全局安装:

npm install yarn -g # -g是全局安装的意思
在这里插入图片描述

参考资料

  1. Node.js开发实战详解 .清华大学出版社.2012-5-5引用日期2018-08-21
  2. Node.js Wiki .维基百科引用日期2014-01-09
  3. 前端页面开发之Node.js初学者指南 .linux公社网引用日期2012-09-12
  4. 开源软件PK:Hadoop、Apache谁与争锋? Node是一个Javascript运行环境 ..linux公社网引用日期2012-09-12
  5. Node.js教程 .天涯草博客.2013-3-15引用日期2013-03-16
  6. node.js 安装指南 .github引用日期2012-09-18
  7. NodeJS无所不能:细数十个令人惊讶的NodeJS开源项目 .TechTarget引用日期2015-10-31
  8. [服务器端的JavaScript脚本新秀:Node.js .HighSea的小站.2013-05-08引用日期2013-05-16]](https://baike.baidu.com/redirect/e741vYc5chLMJSD1wvo-TjbDN51TLK8PW_u7lJEQ4cJ4WJZ4K1Ew9XuoUL5ZXV5RDmtwqBkJEtno8ubVxcO4DgCwlHG-ZxMT)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131379.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大数据开发工程师面试题以及答案整理(二)

    大数据开发工程师面试题以及答案整理(二)Redis性能优化,单机增加CPU核数是否会提高性能1、根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。2、当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。3、如果需要使用持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟内存以及diskstore方式。4、不要让你的Redis所在机…

    2022年5月30日
    32
  • 在线css三角形生成器 「干货」[通俗易懂]

    在线css三角形生成器 「干货」[通俗易懂]为了提高前端开发效率,笔者先后写了上百个前端工具,有些是给公司内部使用的,有些单纯是因为自己太“懒”,不想写代码,所以才“被迫”做的.接下来介绍的一款工具——css三角形生成器也是因为之前想要解放设计师的生产力,自己又懒得切图或者写css代码,所以想来想去还是自己做一个能自动生成css三角形代码的工具吧.接下来笔者就来带大家介绍一下这个工具的用途和实现方案,方便大家后续可以扩展出更多的“懒人工具”.在线css三角形生成器预览由预览动画我们可以看到通过在线工具我们可以轻松配置..

    2025年6月15日
    0
  • PHP经纬度距离计算「建议收藏」

    PHP经纬度距离计算「建议收藏」//根据两点经纬度计算距离//纬度1、纬度2、经度1、经度2functionget_two_point_distance($lat1,$lat2,$lng1,$lng2){$radLat1=deg2rad($lat1);//deg2rad()函数将角度转换为弧度$radLat2=deg2rad($lat2);…

    2022年9月23日
    0
  • Cocos2d Lua 越来越小样本 内存游戏

    Cocos2d Lua 越来越小样本 内存游戏

    2022年1月6日
    254
  • docker学习

    docker学习学习视频:https://www.bilibili.com/video/BV1R4411F7t9?from=search&seid=17327712472204933619准备工作:登录

    2022年7月2日
    22
  • redisson和jedis区别_java调用redis集群

    redisson和jedis区别_java调用redis集群Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和Zset(有序集合)。 redis与spring的整合一般分为spring-data-redis整合和jedis整合,先看看两者的区别1、引用的依赖不同:spring-data-redis使用的依赖如下:<depen…

    2022年9月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号