Node.js 完全教程:从入门到精通

嚴華  论坛元老 | 2025-1-18 16:29:37 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1050|帖子 1050|积分 3150

Node.js 完全教程:从入门到精通

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,允许开辟者在服务器端利用 JavaScript。它的非阻塞 I/O 和变乱驱动架构使得 Node.js 非常适合于构建高性能的网络应用。本文将详细介绍 Node.js 的安装、基本语法、模块体系、异步编程、Express 框架、数据库操作等内容,帮助你从入门到精通 Node.js。

1. Node.js 简介

Node.js 是一个开源的、跨平台的 JavaScript 运行时环境,能够在服务器端实验 JavaScript 代码。它的特点包括:


  • 异步非阻塞:Node.js 利用变乱驱动的非阻塞 I/O 模型,使得它能够处理大量并发哀求。
  • 单线程:Node.js 运行在单线程上,但通过变乱循环机制实现并发处理。
  • 高性能:得益于 V8 引擎,Node.js 实验 JavaScript 代码的速度非常快。
2. Node.js 安装

2.1 下载与安装

前往 Node.js 官方网站 下载适合你操作体系的安装包。安装过程非常简朴,按照提示完成安装即可。
2.2 验证安装

打开终端(Windows 用户可以利用命令提示符),输入以下命令查抄 Node.js 和 npm(Node.js 包管理器)的版本:
  1. node -v
  2. npm -v
复制代码
如果安装成功,你将看到版本号输出。

3. Node.js 基本语法

3.1 Hello World 示例

创建一个新的 JavaScript 文件 app.js,并输入以下代码:
  1. console.log("Hello, World!
  2. ");
复制代码
在终端中运行:
  1. node app.js
复制代码
输出效果:
  1. Hello, World!
复制代码
3.2 变量与数据范例

Node.js 支持 JavaScript 的全部基本数据范例,包括:


  • 字符串:let name = "Node.js";
  • 数字:let age = 25;
  • 布尔值:let isNode = true;
  • 数组:let fruits = ["apple", "banana", "orange"];
  • 对象:let person = { name: "Alice", age: 30 };
3.3 控制结构

Node.js 支持常见的控制结构,如条件语句和循环。
3.3.1 条件语句

  1. let age = 18;
  2. if (age >= 18) {
  3.     console.log("成年人");
  4. } else {
  5.     console.log("未成年人");
  6. }
复制代码
3.3.2 循环

  1. for (let i = 0; i < 5; i++) {
  2.     console.log(i);
  3. }
复制代码
4. 模块体系

Node.js 的模块化设计使得代码更易于维护和复用。利用 require 导入模块,利用 module.exports 导出模块。
4.1 创建模块

创建一个名为 math.js 的文件,内容如下:
  1. function add(a, b) {
  2.     return a + b;
  3. }
  4. function subtract(a, b) {
  5.     return a - b;
  6. }
  7. module.exports = {
  8.     add,
  9.     subtract
  10. };
复制代码
4.2 利用模块

在 app.js 中利用刚刚创建的模块:
  1. const math = require('./math');
  2. console.log(math.add(5, 3)); // 输出 8
  3. console.log(math.subtract(5, 3)); // 输出 2
复制代码
5. 异步编程

Node.js 的异步编程模型是其核心特性之一。通过回调函数、Promise 和 async/await 来处理异步操作。
5.1 回调函数

  1. const fs = require('fs');
  2. fs.readFile('example.txt', 'utf8', (err, data) => {
  3.     if (err) {
  4.         console.error(err);
  5.         return;
  6.     }
  7.     console.log(data);
  8. });
复制代码
5.2 Promise

  1. const fs = require('fs').promises;
  2. fs.readFile('example.txt', 'utf8')
  3.     .then(data => {
  4.         console.log(data);
  5.     })
  6.     .catch(err => {
  7.         console.error(err);
  8.     });
复制代码
5.3 async/await

  1. const fs = require('fs').promises;
  2. async function readFile() {
  3.     try {
  4.         const data = await fs.readFile('example.txt', 'utf8');
  5.         console.log(data);
  6.     } catch (err) {
  7.         console.error(err);
  8.     }
  9. }
  10. readFile();
复制代码
6. 创建 Web 服务器

Node.js 可以轻松创建 HTTP 服务器。以下是一个简朴的服务器示例:
  1. const http = require('http');
  2. const server = http.createServer((req, res) => {
  3.     res.statusCode = 200;
  4.     res.setHeader('Content-Type', 'text/plain');
  5.     res.end('Hello, Node.js!
  6. ');
  7. });
  8. server.listen(3000, () => {
  9.     console.log('服务器运行在 http://localhost:3000/');
  10. });
复制代码
在终端中运行该文件后,打开浏览器访问 http://localhost:3000/,你将看到 “Hello, Node.js!” 的输出。

7. 利用 Express 框架

Express 是 Node.js 最流行的 Web 应用框架之一,简化了服务器的创建和路由管理。
7.1 安装 Express

利用 npm 安装 Express:
  1. npm install express
复制代码
7.2 创建一个简朴的 Express 应用

  1. const express = require('express');
  2. const app = express();
  3. app.get('/', (req, res) => {
  4.     res.send('Hello, Express!');
  5. });
  6. app.listen(3000, () => {
  7.     console.log('Express 服务器运行在 http://localhost:3000/');
  8. });
复制代码
7.3 路由管理

  1. app.get('/about', (req, res) => {
  2.     res.send('关于页面');
  3. });
  4. app.get('/contact', (req, res) => {
  5.     res.send('联系页面');
  6. });
复制代码
8. 数据库操作

Node.js 可以与多种数据库举行交互,包括 MongoDB、MySQL、PostgreSQL 等。以下是利用 MongoDB 的示例。
8.1 安装 MongoDB 驱动

  1. npm install mongodb
复制代码
8.2 毗连 MongoDB

  1. const { MongoClient } = require('mongodb');
  2. async function main() {
  3.     const uri = "mongodb://localhost:27017";
  4.     const client = new MongoClient(uri);
  5.     try {
  6.         await client.connect();
  7.         console.log("成功连接到 MongoDB");
  8.     } catch (err) {
  9.         console.error(err);
  10.     } finally {
  11.         await client.close();
  12.     }
  13. }
  14. main().catch(console.error);
复制代码
8.3 CRUD 操作

  1. async function createDocument(client, newDocument) {
  2.     const result = await client.db("test").collection("users").insertOne(newDocument);
  3.     console.log(`新文档创建成功:${result.insertedId}`);
  4. }
复制代码
9. 错误处理

在 Node.js 中,错误处理是非常紧张的。可以利用 try...catch 语句处理同步代码中的错误,对于异步代码,可以在 Promise 中利用 .catch() 方法。
  1. async function riskyOperation() {
  2.     try {
  3.         // 可能抛出错误的操作
  4.     } catch (error) {
  5.         console.error("发生错误:", error);
  6.     }
  7. }
复制代码
10. 中间件

在 Express 中,中间件是处理哀求和相应的函数。可以用于日志记录、哀求剖析、身份验证等。
10.1 创建中间件

  1. app.use((req, res, next) => {
  2.     console.log(`${req.method} ${req.url}`);
  3.     next(); // 调用下一个中间件
  4. });
复制代码
10.2 利用现成的中间件

可以利用 body-parser 中间件剖析哀求体:
  1. npm install body-parser
  2. const bodyParser = require('body-parser');
  3. app.use(bodyParser.json());
  4. app.use(bodyParser.urlencoded({ extended: true }));
复制代码
11. 部署 Node.js 应用

将 Node.js 应用部署到云服务器(如 AWS、Heroku、DigitalOcean 等)是一个紧张的步骤。以下是基本的部署步骤:

  • 选择云服务提供商:选择适合的云服务提供商并创建账户。
  • 设置服务器:根据提供商的文档设置服务器环境。
  • 上传代码:利用 Git 或 FTP 将代码上传到服务器。
  • 安装依靠:在服务器上运行 npm install 安装依靠。
  • 启动应用:利用 node app.js
    启动应用,或者利用 PM2 等进程管理工具保持应用运行。

12. 总结

本文详细介绍了 Node.js 的底子知识、模块体系、异步编程、Web 服务器创建、Express 框架、数据库操作等内容。通过示例代码和图示,帮助你更好地明白和掌握 Node.js 的利用。希望这份教程能对你学习 Node.js 有所帮助,祝你在开辟中取得成功!
如果你有任何标题或建议,欢迎在批评区留言。感谢你的阅读!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

嚴華

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表