Node.js 基础教程

Node.js 基础教程

1. 什么是 Node.js?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,允许你在服务器端运行 JavaScript 代码。它是开源的、跨平台的,并且非常适合构建高性能、可扩展的网络应用程序。

2. 安装 Node.js

2.1 下载安装

  1. 访问官方网站 https://nodejs.org/
  2. 选择适合你操作系统的长期支持(LTS)版本
  3. 下载并运行安装程序
  4. 安装完成后,打开命令行并验证安装:
bash 复制代码
node --version
npm --version

2.2 通过包管理器安装

Windows

使用 Chocolatey:

bash 复制代码
choco install nodejs-lts
macOS

使用 Homebrew:

bash 复制代码
brew install node
Linux (Ubuntu/Debian)
bash 复制代码
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

3. 基本概念和语法

3.1 创建第一个 Node.js 程序

创建 hello.js 文件:

javascript 复制代码
console.log('Hello, Node.js!');

在命令行运行:

bash 复制代码
node hello.js

3.2 模块系统

CommonJS 模块导入导出

math.js

javascript 复制代码
function add(a, b) {
    return a + b;
}

function subtract(a, b) {
    return a - b;
}

module.exports = {
    add,
    subtract
};

app.js

javascript 复制代码
const math = require('./math');

console.log(math.add(5, 3));      // 输出: 8
console.log(math.subtract(10, 4)); // 输出: 6

3.3 异步编程

回调函数
javascript 复制代码
function fetchData(callback) {
    setTimeout(() => {
        callback('数据已获取');
    }, 2000);
}

fetchData((result) => {
    console.log(result);
});
Promise
javascript 复制代码
function fetchDataPromise() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('数据已获取');
        }, 2000);
    });
}

fetchDataPromise()
    .then(result => console.log(result))
    .catch(error => console.error(error));
Async/Await
javascript 复制代码
async function getData() {
    try {
        const result = await fetchDataPromise();
        console.log(result);
    } catch (error) {
        console.error(error);
    }
}

getData();

4. NPM(Node Package Manager)

4.1 初始化项目

bash 复制代码
mkdir my-project
cd my-project
npm init -y

4.2 安装依赖

bash 复制代码
# 安装生产依赖
npm install express

# 安装开发依赖
npm install --save-dev nodemon

# 全局安装
npm install -g nodemon

4.3 package.json 脚本

json 复制代码
{
  "scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js",
    "test": "jest"
  }
}

5. 常用内置模块

5.1 文件系统(fs)

javascript 复制代码
const fs = require('fs');

// 同步读取文件
const content = fs.readFileSync('file.txt', 'utf8');

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

5.2 路径(path)

javascript 复制代码
const path = require('path');

const filePath = path.join(__dirname, 'files', 'data.json');
console.log(filePath);

5.3 HTTP 模块

javascript 复制代码
const http = require('http');

const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World');
});

server.listen(3000, () => {
    console.log('服务器运行在 http://localhost:3000');
});

6. 搭建简单的 Web 服务器(Express)

6.1 安装 Express

bash 复制代码
npm install express

6.2 基本服务器

javascript 复制代码
const express = require('express');
const app = express();
const port = 3000;

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

app.listen(port, () => {
    console.log(`服务器运行在 http://localhost:${port}`);
});

7. 最佳实践和建议

  1. 使用 constlet 替代 var
  2. 使用异步编程和 Promise
  3. 使用 async/await 处理异步操作
  4. 合理使用错误处理
  5. 保持代码模块化
  6. 使用 ESLint 进行代码风格检查

结语

Node.js 是现代 Web 开发不可或缺的技术。通过持续学习和实践,你将能够构建高效、可扩展的应用程序。

相关推荐
布Coder2 小时前
前端 vue + element-ui 框架从 0 - 1 搭建
前端·javascript·vue.js
小刘不知道叫啥4 小时前
简单说一下 Webpack分包
前端·javascript·webpack·node.js
MessiGo4 小时前
Javascript 编程基础(2)基础知识 | 2.1、javascript与Node.js
开发语言·javascript·node.js
前端达人5 小时前
React 播客专栏 Vol.13|样式不难搞,Tailwind CSS 与 SVG 实战入门
前端·javascript·css·react.js·前端框架
W.Y.B.G6 小时前
vue3 vite 项目中自动导入图片
前端·javascript·vue.js
阳光开朗大男孩 = ̄ω ̄=6 小时前
【Vue篇】潮汐中的生命周期观测站
前端·javascript·vue.js
邝邝邝邝丹7 小时前
React学习———Immer 和 use-immer
javascript·学习·react.js
魔术师ID7 小时前
vue2.0 组件生命周期
前端·javascript·vue.js·学习·visual studio code
面包资料屋8 小时前
整理了 2009 - 2025 年的【199 管综真题 + 解析】PDF,全套共 34 份文件
开发语言·javascript·pdf
程序猿阿伟8 小时前
《虚拟即真实:数字人驱动技术在React Native社交中的涅槃》
javascript·react native·react.js