《从零到全栈:Node.js入门指南--后端开发》

        Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,主要用于在服务器端运行 JavaScript。它使得开发者能够使用 JavaScript 编写高性能的后端服务,广泛应用于 Web 开发、API 服务、实时通信等领域。以下是 Node.js 的核心知识点整理。


一、Node.js 基础

1.1 Node.js 是什么?

        Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,设计用于在服务器端运行 JavaScript。它的特点包括:

  • 事件驱动:基于事件循环模型,适合处理高并发请求。

  • 非阻塞 I/O:通过异步 I/O 操作提升性能。

  • 单线程:通过事件循环处理并发请求,避免多线程的复杂性。

  • 高性能:Node.js 运用 V8 引擎与高效事件循环机制,可应对大量并发连接,适用于高负载实时应用。

  • 跨平台:Node.js 能在多操作系统运行,如 Windows、Linux、macOS 。

1.2 Node.js 的作用

  • 搭建 Web 服务:可以快速构建后端服务,处理 HTTP 请求。

  • 运行 JavaScript:在服务器端运行 JavaScript 代码。

  • 编写后台接口:提供 RESTful API 或 GraphQL 接口。


二、Node.js 环境搭建

2.1 安装 Node.js

        从 Node.js 官网 下载并安装 Node.js。

2.2 初始化项目

        使用 npm init 初始化项目,生成 package.json 文件。

npm init -y

2.3 运行 JavaScript 文件

  • 使用 node 命令运行 JavaScript 文件。

    node app.js
  • 使用 nodemon 实现热更新。

    nodemon app.js

三、Node.js 核心模块

3.1 文件系统(fs 模块)

        Node.js 提供了 fs 模块用于操作文件系统。

const fs = require('fs');

// 读取文件
fs.readFile('file.txt', 'utf8', (err, data) => {
    if (err) throw err;
    console.log(data);
});

// 写入文件
fs.writeFile('file.txt', 'Hello World', (err) => {
    if (err) throw err;
    console.log('文件写入成功');
});

3.2 模块系统

Node.js 使用 CommonJS 模块系统,支持模块的导入和导出。

  • 导出模块

    // math.js
    module.exports = {
        add: (a, b) => a + b,
        subtract: (a, b) => a - b
    };
  • 导入模块

    const math = require('./math');
    console.log(math.add(2, 3)); // 5

四、搭建 Web 服务

4.1 使用 Express 框架

        Express 是 Node.js 中最流行的 Web 框架。

npm install express
const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello World');
});

app.listen(4000, () => {
    console.log('服务已启动:http://127.0.0.1:4000');
});

4.2 设置静态资源路径

        使用 express.static 设置静态资源目录。

app.use(express.static('public'));

4.3 跨域资源共享(CORS)

        使用 cors 模块解决跨域问题。

npm install cors
const cors = require('cors');
app.use(cors());

五、路由分发

5.1 创建路由文件

        在 router/exam.js 中定义路由。

const router = require('express').Router();

router.get('/category', (req, res) => {
    res.send({ code: 200, data: [] });
});

module.exports = router;

5.2 加载路由

        在 app.js 中加载路由。

app.use('/api/exam', require('./router/exam'));

六、数据库操作

6.1 安装 MySQL 模块

        使用 mysql 模块操作 MySQL 数据库。

npm install mysql

6.2 配置数据库连接

        在 common/db/database.js 中配置数据库连接信息。

module.exports = {
    mysql: {
        host: 'localhost',
        user: 'root',
        password: 'password',
        database: 'test',
        port: 3306
    }
};

6.3 创建数据库连接池

        在 common/db/db.js 中创建连接池。

const mysql = require('mysql');
const dbconfig = require('./database');

const pool = mysql.createPool(dbconfig.mysql);

module.exports = {
    query: function (sql) {
        return new Promise((resolve, reject) => {
            pool.getConnection((err, connection) => {
                connection.query(sql, (err, rows) => {
                    if (err) reject(err);
                    else resolve(rows);
                    connection.release();
                });
            });
        });
    }
};

七、拓展知识点

7.1 中间件

        中间件是 Express 的核心概念,用于处理请求和响应。

app.use((req, res, next) => {
    console.log('请求时间:', new Date());
    next();
});

7.2 错误处理

        使用错误处理中间件捕获异常。

app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('服务器错误');
});

7.3 文件上传

        使用 multer 模块处理文件上传。

npm install multer
const multer = require('multer');
const upload = multer({ dest: 'uploads/' });

app.post('/upload', upload.single('file'), (req, res) => {
    res.send('文件上传成功');
});

7.4 WebSocket

        使用 ws 模块实现实时通信。

npm install ws
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', (ws) => {
    ws.on('message', (message) => {
        console.log('收到消息:', message);
    });
    ws.send('连接成功');
});

八、总结

        Node.js 是一个强大的后端开发工具,结合 Express 框架可以快速搭建 Web 服务。通过文件系统、模块系统、路由分发、数据库操作等知识点,开发者可以构建功能完善的后端应用。此外,中间件、错误处理、文件上传和 WebSocket 等拓展知识点进一步提升了 Node.js 的应用场景和开发效率。


希望这份整理对你有帮助!如果需要进一步细化某部分内容,可以告诉我! 😊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值