NodeJs
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine.
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
相关教程
安装
- 安装
直接首页下载安装即可,比较简单。
- 测试确认
$ node -v
v6.2.2
windows11 安装实战
调整默认的安装路径:
D:\Program Files\nodejs\
查看版本:
λ node -v
v16.16.0
cnpm 安装处理
λ npm -v
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
8.11.0
npm 作为默认的安装路径,在国内可能会比较慢。
cnpm install 安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
入门案例
- hello-world.js
console.log("hello, nodejs!");
- 编译
命令行直接执行
$ node hello-world.js
- 结果
$ node hello-world.js
hello, nodejs!
版本更新
原来的版本相对较老,为了方便后期学习,更新至最新版,
教程
- 第一步,先查看本机 node.js 版本
$ node -v
- 第二步,清除 node.js 的 cache
$ sudo npm cache clean -f
- 第三步,安装 n 工具,这个工具是专门用来管理 node.js 版本的
$ sudo npm install -g n
- 第四步,安装最新版本的node.js
$ sudo n stable
- 第五步,再次查看本机的node.js版本:
$ node -v
实际操作
houbinbindeMacBook-Pro:~ houbinbin$ sudo npm cache clean -f
Password:
npm WARN using --force I sure hope you know what you are doing.
houbinbindeMacBook-Pro:~ houbinbin$ sudo npm install -g n
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
/usr/local/lib
└── n@2.1.8
houbinbindeMacBook-Pro:~ houbinbin$ sudo n stable
install : node-v9.10.1
mkdir : /usr/local/n/versions/node/9.10.1
fetch : https://nodejs.org/dist/v9.10.1/node-v9.10.1-darwin-x64.tar.gz
######################################################################## 100.0%
installed : v9.10.1
houbinbindeMacBook-Pro:~ houbinbin$ node -v
v9.10.1
chat
Q: 详细介绍一下 nodejs
Node.js 是一个开源、跨平台的JavaScript运行时环境,它允许开发者在服务器端运行JavaScript代码。Node.js 是基于Chrome V8 JavaScript引擎构建的,它的设计目标是提供一种高效、轻量级的方式来构建可扩展的网络应用程序。
以下是Node.js的一些关键特性和概念:
-
异步和事件驱动:Node.js 的大部分API都是异步的,即非阻塞的。这意味着Node.js基于事件循环机制,可以在执行I/O操作(如读写文件、数据库查询、网络请求等)时不被阻塞,从而使得Node.js非常适合处理大量并发连接。
-
单线程:尽管JavaScript在Node.js中是单线程执行的,但是通过事件循环和回调函数,Node.js可以处理大量并发,而不会因为线程创建和销毁的开销而降低性能。
-
npm:Node.js 附带了一个名为npm(Node Package Manager)的包管理器,它是世界上最大的开源库生态系统。开发者可以使用npm来安装、共享和管理依赖库。
-
模块系统:Node.js 有一个模块化的结构,使用CommonJS模块系统。每个模块都是一个单独的文件,可以导出对象、函数、变量等供其他模块使用。
-
网络支持:Node.js 提供了强大的网络支持,包括HTTP、TCP、UDP、DNS和TLS/SSL等,使其成为开发各种网络应用的理想选择。
-
跨平台:Node.js 可以在多个平台上运行,包括多种Unix变种、macOS、Windows等。
-
Buffer和Stream:Node.js 提供了Buffer类来处理二进制数据,以及Stream接口来处理数据流。
-
社区驱动:Node.js 拥有一个活跃的开发者社区,不断地为其贡献新的模块和工具。
-
适用于构建多种应用:Node.js 不仅适用于Web服务器和网站应用,还适用于IoT、实时通信、命令行工具、网络服务等。
-
ES6+ 支持:Node.js 支持大部分现代JavaScript特性,包括ES6+(ECMAScript 2015及以后版本)的类、模块、箭头函数等。
-
安全性:Node.js 提供了一些内置的安全性特性,并且社区维护着许多专注于安全性的模块。
-
性能:由于Node.js使用V8引擎,它在性能上通常比传统的服务器端JavaScript环境更快。
Node.js 的应用场景非常广泛,从小型的实时聊天应用到大型的在线平台,如LinkedIn、Netflix、PayPal、Uber等,都在使用Node.js。
要开始使用Node.js,你只需要从官方网站下载并安装它,然后就可以开始编写代码并运行你的应用程序了。
windows 如何安装 node.js
在Windows系统中安装Node.js的步骤通常包括以下几个环节:
- 下载Node.js安装包:
- 访问Node.js官方网站下载页面,选择适合Windows系统的预编译安装包。通常有两种版本可供选择:LTS(长期支持版)和Current(当前版)。LTS版本更稳定,适合生产环境;Current版本可能有最新的功能,但可能不如LTS版本稳定。
- 运行安装程序:
- 下载完成后,双击
.msi
格式的安装包以运行安装程序。
- 下载完成后,双击
- 安装选项:
- 在安装过程中,可以选择安装路径。建议使用默认路径,也可以自定义安装路径。
- 确保勾选了“Add to PATH”选项,这样可以在任何命令行窗口中直接运行Node.js和npm命令。
- 环境变量配置(如果“Add to PATH”未勾选):
- 打开系统属性,编辑环境变量,在系统变量中添加Node.js的安装路径。
- 验证安装:
- 安装完成后,打开命令提示符(CMD)或PowerShell,输入
node -v
和npm -v
来验证Node.js和npm是否安装成功,版本号将被显示出来。
- 安装完成后,打开命令提示符(CMD)或PowerShell,输入
- 更换npm源(可选):
- 由于某些原因,直接使用npm可能会比较慢,可以考虑更换npm的源为淘宝的npm镜像,以加快下载速度。可以通过命令
npm config set registry https://registry.npm.taobao.org/
来设置。
- 由于某些原因,直接使用npm可能会比较慢,可以考虑更换npm的源为淘宝的npm镜像,以加快下载速度。可以通过命令
- 安装版本管理器(可选):
- 如果需要在Windows上管理多个版本的Node.js,可以使用如nvm-windows这样的版本管理器。
- 安装其他工具或IDE(可选):
- 根据个人喜好,可以安装如Visual Studio Code等集成开发环境,以便于开发。
按照这些步骤,你应该能够在Windows系统上成功安装Node.js。
如果在安装过程中遇到任何问题,可以参考官方文档或搜索相关的错误信息来解决。
版本测试
>node -v
v20.10.0
>npm -v
10.2.3
给出 nodejs 的入门例子
- 01-hello.js
// 引入http模块
const http = require('http');
// 设置服务器监听的端口
const port = 3000;
// 创建HTTP服务器
const server = http.createServer((req, res) => {
// 设置响应头,告知客户端我们使用的是HTTP协议版本1.1
res.writeHead(200, { 'Content-Type': 'text/plain' });
// 向客户端发送响应
res.end('Hello, World!\n');
});
// 监听指定端口
server.listen(port, () => {
console.log(`Server running at http://localhost:${port}/`);
});
启动
node 01-hello.js
启动日志:
Server running at http://localhost:3000/
浏览器访问 http://localhost:3000/
页面响应
Hello, World!
如何系统的学习 node.js
系统地学习Node.js需要一个结构化的学习计划,以下是一些步骤和建议:
- 理解JavaScript基础:
- 由于Node.js是基于JavaScript的,因此对JavaScript有扎实的理解是至关重要的。学习基本的语法、数据类型、函数、对象、原型继承等。
- 熟悉Node.js环境和API:
- 阅读Node.js的官方文档,了解其核心模块,如
http
、fs
(文件系统)、path
、events
等。
- 阅读Node.js的官方文档,了解其核心模块,如
- 设置开发环境:
- 安装Node.js和npm(Node包管理器),配置你的代码编辑器或IDE(如Visual Studio Code)。
- 学习异步编程:
- 理解回调函数、Promises、async/await等异步编程模式,因为Node.js大量使用非阻塞I/O。
- 掌握npm和包管理:
- 学习如何使用npm安装和管理项目依赖,以及如何发布自己的npm包。
- 构建小型项目:
- 通过构建小型项目来实践你的知识,如命令行工具、简单的web应用等。
- 学习中间件和框架:
- 研究Express.js等流行的Node.js框架,它们可以简化web应用的开发。
- 理解数据库和存储:
- 学习如何使用Node.js与数据库交互,包括关系型数据库(如MySQL、PostgreSQL)和非关系型数据库(如MongoDB)。
- 安全性知识:
- 学习基本的Web安全知识,如防止SQL注入、XSS和CSRF攻击。
- 深入学习Node.js架构:
- 理解Node.js的事件循环、内存管理、进程和线程等高级主题。
- 实际项目经验:
- 参与开源项目或实习,以获得实际的Node.js开发经验。
- 构建更复杂的应用:
- 随着你技能的提升,尝试构建更复杂的应用,如实时通信应用、RESTful API、全栈应用等。
- 性能优化:
- 学习如何分析和优化Node.js应用的性能。
- 持续学习:
- 技术不断发展,持续关注Node.js社区的最新动态和最佳实践。
- 资源利用:
- 利用在线资源,如教程、视频课程(比如Udemy、Coursera)、博客文章、技术论坛和Stack Overflow。
- 构建个人作品集:
- 将你的项目部署到线上,并建立一个个人作品集,展示你的技能和项目。
- 代码复审和版本控制:
- 学习使用Git进行版本控制,并通过Pull Request参与代码复审。
- 测试:
- 学习单元测试、集成测试和端到端测试,确保你的代码质量。
- 部署:
- 学习如何将Node.js应用部署到服务器,了解不同的托管服务和部署策略。
- 软技能:
- 提升你的沟通、团队合作和问题解决能力。
记住,实践是学习的关键,因此要不断地编写代码、构建项目,并从错误中学习。此外,参与社区讨论和贡献开源项目也是提高技能的好方法。
有哪些可以系统学习 nodejs 的网站,给出网址
以下是一些可以系统学习Node.js的网站,以及它们的网址:
- Node.js 官方网站:提供关于Node.js的全面信息,包括下载、文档和社区资源。
- Node.js 中文网:提供Node.js的学习教程、下载安装指南和API文档。
- NodeSchool:通过交互式工作坊来教授Node.js和其他技术。
- CNode(Node.js专业中文社区):一个中文社区,可以在这里找到Node.js的学习资源和与其他开发者交流。
- GitHub:上面有许多开源的Node.js项目,可以边学习边实践。
- 知乎:可以找到许多关于Node.js学习的经验分享和问题解答。
- SegmentFault 思否:一个开发者社区,提供问题解答和技术文章,可以找到Node.js相关的内容。
- dev.nodejs.cn:Node.js的官方文档中文版,适合深入学习Node.js的API。
- Bilibili:有许多免费的Node.js教学视频,适合通过视频学习的用户。
- Udemy、Coursera、edX:这些在线学习平台提供专业的Node.js课程,部分课程可能需要付费。
- Udemy:https://www.udemy.com/
- Coursera:https://www.coursera.org/
- edX:https://www.edx.org/
通过这些资源,你可以从基础到进阶系统地学习Node.js。
记住,实践是学习的最好方式,尝试构建自己的小项目,逐步提升技能水平。