Node能做什么?Node.js命令常用有哪些?

时间:2023年02月26日

/

来源:网络

/

编辑:佚名

Node.js 诞生于2009年,比 JavaScript 晚15年。在 Node.js 之前,JavaScript 只能在浏览器中运行,作为网页脚本使用,为网页添加特殊效果或与服务器通信。有了 Node.js,JavaScript 可以脱离浏览器,像其他编程语言一样直接在电脑上使用,不再受浏览器的限制。本文跟大家分享Node能做什么?Node.js命令常用有哪些?

Node能做什么
一、Node.js 是什么?
Node.js 不是一门新的编程语言,也不是一个 JavaScript 框架,它是一套基于 Chrome V8 引擎的 JavaScript 运行环境,使用了一个事件驱动、非阻塞式I/O模型, 让 JavaScript 运行在服务端的开发平台,用来支持 JavaScript 代码的执行。用编程术语来讲,Node.js 是一个 JavaScript 运行时(Runtime)。它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。
Node.js基于Javascript 语言,Javascript 在 Web 前端开发中至关重要,特别 HTML5 的应用必须要使用,所以前后台统一语言,不仅可以实现程序员的全栈开发,还可以统一公共类库,代码标准化。Node.js的开发非常高效,而且代码简单,这得益于 Node 的单线程机制。而 Node.js 的另一个特点异步编程,让 Node 处理IO密集型应用有了明显的优势。
二、运行时是什么?
所谓运行时,就是程序在运行期间需要依赖的一系列组件或者工具。把这些工具和组件打包在一起提供给程序员,程序员就能运行自己编写的代码了。
对于 JavaScript 来说,它在运行期间需要依赖以下组件:
1、解释器
JavaScript 是一种脚本语言,需要一边解释一边运行,用到哪些源代码就编译哪些源代码,整个过程由解释器完成。没有解释器的话,JavaScript 只是一堆纯文本文件,不能被计算机识别。
2、标准库
我们在 JavaScript 代码中会调用一些内置函数,这些函数不是我们自己编写的,而是标准库自带的。
3、本地模块
所谓本地模块,就是已经被提前编译好的模块,它们是二进制文件,和可执行文件在内部结构上没有什么区别,只是不能单独运行而已。这些本地模块其实就是动态链接库(在 Windows 下是 .dll 文件),如果你使用过C语言、C++ 等编译型语言,那你应该能够更好地理解它。
三、服务器端的 JavaScript 是什么?
大多数 Web 开发人员都熟悉于使用 JavaScript 操纵浏览器中的 Web 页面并与之交互。这就是通常所称的客户端 JavaScript,因为它发生在浏览器或者客户端。服务器端 JavaScript 发生在把页面发送给浏览器之前的服务器上。当然,使用的是同样的语言。
四、Node能做什么?
Node.js 能做的远不止开发一个网站那么简单,使用 Node.js,你可以轻松做这些应用:
1、I/O 密集型应用
Node.js 的优势主要在于事件循环,非阻塞异步 I/O,只开一个线程,不会每个请求过来都去创建一个线程,从而产生资源开销。
2、中间层
通常我们可以使用 Node.js 来做为中间层,负责组装数据提供 API 接口给到前端调用,这些数据源可能来自第三方接口或者数据库,例如,以前可能我们通过后端 Java、PHP 等其它语言来做,现在我们前端工程师通过 Node.js 即可完成,后端则可以更专注于业务开发。
3、RPC服务
RPC(Remote Procedure Call),即远程过程调用,也许你对它很陌生,但是在当今微服务模式下,我们可能是针对功能或者具体的业务形态进行服务化,那么服务之间的通信一种常见的模式通过 HTTP 来实现,了解网络模型的同学可能知道,HTTP 属于应用层协议,在这之下就是传输层,显然以 TCP 形式是很有优势的,RPC 服务也就是采用的 TCP,现在出名的 RPC 服务例如,Google 的 gRPC、阿里的 Dubbo。
4、基础工具
可以作为基础工具,前端领域中的编译器、构建工具、搭建脚手架等。比较出名的例如 Webpack、Gulp 都是很成功的。
5、论坛社区系统
Nodeclub 是使用 Node.js 和 MongoDB 开发的社区系统,界面优雅,功能丰富,小巧迅速,可以用它搭建自己的社区。
6、BFF应用
Backend For Frontend,简称 BFF,服务于前端的后端,并非是一种新技术只是一种逻辑上的分层,在这一层我们可以做一些资源的整合,例如:原先前端需要从三个不同的地方来获取资源,那么,有了这一层之后,我们是不是可以做个聚合,统一处理之后返回给前端,同时也不授后端系统的变迁,导致也要去更改。
7、Serverless
这将是未来经常会听到的一个词,ServerLess 是一种 “无服务器架构”,它不需要开发者去关心运维、流量处理这些工作,开发者则可以更关注于业务本身。函数即服务,那么写一个函数就可以实现一个 API 接口给到前端,显然对开发工作是减轻了很多,在 JavaScript 中函数则是一等一的公民,在 ServerLess 这一场景下 Node.js 本身也很轻量级,还是拥有着很大的优势。

Node.js命令
五、Node.js命令常用有哪些?
这是 Node.js 中 npm 常用命令,npm 是一个 Node 包管理和分发工具,已经成为了非官方的发布 Node 模块(包)的标准。有了 npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。
1、Node 安装模块
npm install xxx(利用 npm 安装xxx模块到当前命令行所在目录)
npm install -g xxx(利用npm安装全局模块xxx)
复制代码本地安装时将模块写入 package.json 中:
npm install xxx(安装但不写入package.json)
npm install xxx –-save/-S(安装并写入package.json的”dependencies”中)
npm install xxx -–save-dev/-D(安装并写入package.json的”devDependencies”中)
2、Node 删除模块
npm uninstall xxx(删除xxx模块)
npm uninstall -g xxx(删除全局模块xxx)
3、查看全局的包的安装路径
npm root -g
4、查看npm安装的版本
npm -v:
5、更新 Node 模块
npm update moduleName
6、项目初始化
会引导你创建一个 package.json 文件,包括名称、版本、作者这些信息等,一直回车就行。
npm init
7、查看当前包的安装路径
npm root
8、查看 Node 模块的 package.json 文件夹
如果想要查看 package.json 文件夹下某个标签的内容,可以使用$npm view moduleName labelName
npm view moduleNames
9、查看当前目录下已安装的 Node 包
注意事项:Node 模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中的 node_modules 下的内容。$ npm list
npm list:(parseable=true可以目录的形式来展现当前安装的所有node包)
10、查看帮助命令
npm help
11、查看包的依赖关系
npm view moudleName dependencies
12、查看包的源文件地址
npm view moduleName repository.url
13、查看包所依赖的 Node 的版本
npm view moduleName engines
14、查看 npm 使用的所有文件夹
npm help folders
15、用于更改包内容后进行重建
npm rebuild moduleName:
16、检查包是否已经过时
npm outdated(此命令会列出所有已经过时的包,可以及时进行包的更新)
17、访问 npm 的 json 文件夹
一个 npm 包是包含了 package.json 的文件夹,package.json 描述了这个文件夹的结构。访问 npm 的 json 文件夹的方法如下:
$ npm help json(此命令会以默认方式打开网页,如果更改了默认打开程序则可能不会以网页的形式打开)
18、检验某个包名是否已存在
$ npm search packageName(发布一个 npm 包的时候,需要检验某个包名是否已存在)
以上是Node能做什么以及Node.js常用命令介绍。总的来说,Node.js 是个程序设计平台,只要有想法和足够的编程技艺,它就无所不能。从 Node.js 官方网站的企业登记页得知,包括我们熟知的公司如LinkedIn、Yahoo、Paypal、eBay、Walmart、Groupon等很多的中小型公司,国内的公司如雪球、淘宝、网易、百度等也有很多项目运行在 Node.js 之上。这些公司不仅是尝试在用,而且都在向 Node.js 迁移。
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。