mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
428 字
1 分钟
nodejs初学
2024-11-16

Node.js 基础#

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,用于在服务端运行 JavaScript 代码。以下是 Node.js 的基本概念和常用功能。


Node.js 简介#

特点#

  1. 单线程、非阻塞 I/O:通过事件循环和异步 I/O,提高高并发能力。
  2. 基于模块化:使用 CommonJS 模块规范,代码组织更清晰。
  3. 跨平台:支持多种操作系统(Windows、Linux、macOS)。

应用场景#

  • 构建 Web 服务(如 REST API)。
  • 创建实时应用程序(如聊天、游戏)。
  • 脚本工具(如自动化任务)。
  • 操作文件系统。

基本模块#

Node.js 提供了许多内置模块,以下是常用模块:

  1. fs****(文件系统模块)

    • 处理文件和目录。
    const fs = require("fs");
    // 同步读取文件
    const data = fs.readFileSync("example.txt", "utf-8");
    console.log("File content:", data);
    // 异步读取文件
    fs.readFile("example.txt", "utf-8", (err, data) => {
    if (err) throw err;
    console.log("Async file content:", data);
    });
  2. http****(HTTP 服务模块)

    • 创建 HTTP 服务器。
    const http = require("http");
    const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader("Content-Type", "text/plain");
    res.end("Hello, World!");
    });
    server.listen(3000, () => {
    console.log("Server running at http://localhost:3000/");
    });
  3. path****(路径操作模块)

    • 处理文件路径。
    const path = require("path");
    const filePath = path.join(__dirname, "example.txt");
    console.log("File path:", filePath);
  4. os****(操作系统信息模块)

    • 获取操作系统相关信息。
    const os = require("os");
    console.log("Platform:", os.platform());
    console.log("Total Memory:", os.totalmem());

npm 和包管理#

npm 的作用#

  • npm(Node Package Manager)是 Node.js 的包管理工具,用于安装和管理第三方库。

常用命令#

  1. 初始化项目

    npm init -y
    • 生成 package.json 文件。
  2. 安装包

    npm install express
    • 默认安装到 node_modules 目录,并记录到 package.json
  3. 安装全局包

    npm install -g nodemon
    • 全局安装的包可直接作为命令使用。
  4. 移除包

    npm uninstall express

使用第三方模块#

Express 示例#

Express 是一个常用的 Node.js Web 框架,适合快速构建 Web 服务。

  1. 安装 Express

    npm install express
  2. 创建简单服务器

    const express = require("express");
    const app = express();
    app.get("/", (req, res) => {
    res.send("Hello, Express!");
    });
    app.listen(3000, () => {
    console.log("Express server running at http://localhost:3000/");
    });

异步编程模式#

Node.js 的核心是异步编程,以下是几种常用方式:

  1. 回调

    const fs = require("fs");
    fs.readFile("example.txt", "utf-8", (err, data) => {
    if (err) throw err;
    console.log("File content:", data);
    });
  2. Promise

    const fs = require("fs").promises;
    fs.readFile("example.txt", "utf-8")
    .then((data) => console.log("File content:", data))
    .catch((err) => console.error(err));
  3. async/await

    const fs = require("fs").promises;
    async function readFileContent() {
    try {
    const data = await fs.readFile("example.txt", "utf-8");
    console.log("File content:", data);
    } catch (err) {
    console.error(err);
    }
    }
    readFileContent();
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

nodejs初学
https://dreaife.tokyo/cn/nodejs-basics/
作者
dreaife
发布于
2024-11-16
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

相关文章 智能推荐
1
基于 Nest.js 和 Angular 的竞价平台-以及Jest测试和CICD
BACKEND 该项目是一个基于Nest.js和Angular的竞价平台,提供用户注册、项目管理和投标管理功能,使用PostgreSQL作为数据库,并通过Swagger生成API文档。后端实现了安全认证,使用AWS Cognito进行用户身份验证。前端构建了用户友好的界面,支持项目展示和投标管理。项目使用Jest进行测试,确保代码质量,并通过GitHub Actions实现持续集成和部署。
2
新时代的第一轮筛选
life 随着AI技术的发展,使用先进模型的成本可能导致社会分层,只有经济能力强的人才能使用这些模型。虽然当前价格尚可,但未来价格的上涨可能使大多数人无法承担,从而形成第一轮筛选。作者对这种现象感到焦虑,同时也意识到AI的应用已超越编程领域,进入更广泛的产业。面对新世界的挑战与机遇,个人在时代的推动下不断探索。
3
博客迁移-Mizuki配置记录
infra 从notionNext迁移到mizuki的过程记录,主要原因是notionNext的限制。选择mizuki是因为其轻量级和良好的功能平衡,支持日记和项目展示。配置过程简单,内容通过md和ts文件控制,同时实现了与bangumi API的连接。计划通过CI同步notion内容,并进行多语言适配,解决了图片链接过期的问题。
4
心理记录1
psycho 意识到自己在抑制情感,反思过去的生活习惯导致对外界的恐惧和内心的静止。希望通过与世界的互动找到真实的自我,面对选择方向的责任感和可能性丢失的恐惧。真正的自我需要在探索中形成,而选择未来的方向意味着放弃其他可能性。
5
JavaScript学习
FRONTEND JavaScript是一种动态、弱类型的解释型语言,具有轻量级、跨平台和事件驱动的特点。核心概念包括变量与数据类型、控制流、函数及异步编程。JavaScript可在浏览器和Node.js环境中运行,支持多种数据类型和操作,如对象、数组、解构赋值和模块化。异步编程使用回调函数、Promise和async/await来处理任务。

目录