Node.js飞速入门1 - 初识node.js

目录

[一、Node.js 是什么?](#一、Node.js 是什么?)

[二、为什么选择 Node.js?](#二、为什么选择 Node.js?)

[三、快速上手:Hello Node.js!](#三、快速上手:Hello Node.js!)

四、核心概念:模块化

五、下一步学习方向


从浏览器到服务器:JavaScript的跨时代突破

如果你曾用 JavaScript 编写过网页交互逻辑,那么 Node.js 将为你打开一扇新世界的大门------让 JavaScript 跳出浏览器,直接运行在操作系统上,成为构建高性能服务器、工具链甚至桌面应用的全能语言。


一、Node.js 是什么?

1. 定义与核心架构

Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境。它让 JavaScript 脱离了浏览器的限制,可以直接在操作系统(如 Windows、Linux、macOS)上执行,成为一门"真正的"编程语言。

  • V8 引擎:Google 为 Chrome 浏览器开发的 JavaScript 引擎,以高性能著称。

  • 事件驱动与非阻塞I/O:Node.js 的核心设计,使其擅长处理高并发请求(如实时聊天、API 服务)。

2. 单线程?异步?

  • 单线程事件循环:Node.js 主线程是单线程的,但通过异步非阻塞机制,能高效处理大量并发任务。

  • 背后的多线程:底层依赖的 C++ 模块(如文件操作、网络请求)使用线程池,开发者无需直接管理。


二、为什么选择 Node.js?

1. 统一技术栈

  • 前端与后端均使用 JavaScript,降低学习成本,代码复用率高(例如数据校验逻辑共享)。

  • 配合 Express、NestJS 等框架,快速构建 RESTful API 或微服务。

2. 高性能场景

  • I/O 密集型应用:如实时消息推送(WebSocket)、大数据流处理(视频转码)。

  • 工具开发:Webpack、Babel 等前端工具链均基于 Node.js。

3. 活跃的生态

  • npm(Node Package Manager):全球最大的开源库生态系统,提供超过 200 万个模块。

  • 社区支持强大,问题解决资源丰富。


三、快速上手:Hello Node.js!

1. 安装 Node.js

访问 Node.js 官网,下载 LTS(长期支持)版本。安装后验证:

bash 复制代码
node -v  # 查看 Node.js 版本
npm -v   # 查看 npm 版本

2. 第一个脚本

创建 app.js 文件:

javascript 复制代码
// 引入内置 HTTP 模块
const http = require('http');

// 创建服务器实例
const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js!\n');
});

// 监听 3000 端口
server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});
javascript 复制代码
//导入读写模块fs
const fs = require('fs')

//使用读写模块fs.readFile()读取文件
fs.readFile(__dirname + '/files/成绩表.txt', 'utf8', function (err, dataStr) {
  if(err){
    return console.log('读取文件失败!' + err.message)
  }
  const arr = dataStr.split(' ')
  
  const newarr = []
  arr.forEach(item=>{
    newarr.push(item.replace('=',':'))
  })
  console.log(newarr.join('\r\n'))
  const newarry = newarr.join('\r\n')
  fs.writeFile(__dirname +'/files/整理过后的成绩表.txt', newarry, function(err){
    if(err){
      return console.log('写入文件夹失败!' + err.message)
  
    }
    console.log('写入文件成功')
  })
})

3. 运行与测试

命令行执行:

javascript 复制代码
node app.js

浏览器访问 http://localhost:3000,页面显示 "Hello Node.js!"


四、核心概念:模块化

1. CommonJS 模块

Node.js 默认使用 CommonJS 规范管理代码模块:

  • 导出模块 :module.exports 或 exports

  • 导入模块 :require('模块路径')

示例:

javascript 复制代码
// math.js
const add = (a, b) => a + b;
module.exports = { add };

// app.js
const { add } = require('./math.js');
console.log(add(2, 3)); // 输出 5

2. ES Modules(现代浏览器标准)

在 .mjs 文件或 package.json 中设置 "type": "module" 后支持:

javascript 复制代码
// math.mjs
export const add = (a, b) => a + b;

// app.mjs
import { add } from './math.mjs';

五、下一步学习方向

  1. 掌握 npm :学习包管理、package.json 配置与脚本命令。

  2. 框架实践:Express.js 快速搭建 Web 服务,或 NestJS 构建企业级应用。

  3. 异步编程:深入理解 Promise、async/await 与事件循环机制。

  4. 实战项目:开发 REST API、命令行工具或实时聊天应用。


Node.js 的诞生,让 JavaScript 从"玩具语言"蜕变为"全能战士"。无论是初创公司还是大型企业(如 Netflix、PayPal),都在利用其高并发特性优化性能。现在,你已迈出第一步,接下来就是探索更广阔的世界!

相关资源

相关推荐
只睡四小时7 小时前
MCP 弃用 SSE?Node 分帧漏 81.7% 事件
node.js·webassembly·实时通信·mcp·streamable http
hey you~17 小时前
个体户门店办理400电话,如何对接订单系统实现来电弹窗
node.js·webhook·400电话·门店数字化·来电弹窗·订单系统对接
YIAN2 天前
RAG 学到最后,我真正学会的不是“检索”,而是让系统知道自己缺什么
langchain·node.js·llm
用户11977079480732 天前
GitHub 电商开源项目分享:用 sharp 批量出饰品主图,试了裁剪、细节图和色彩配置文件三个坑
前端·node.js
donecoding2 天前
pnpm 配好了,为什么执行的还是另一份?命令入口与运行时排查
node.js·前端工程化
江屿风2 天前
【Plain Language Large Model】【从浏览器到全栈:一课精通Node.js三剑客】流食般投喂
笔记·前端框架·npm·node.js·js·npx
SomeOtherTime2 天前
node.js基础(AI回答)
node.js
雨季mo浅忆3 天前
记录Node.js安全漏洞及其内置Brotli解码器问题
node.js·安全性测试
tommyjiatong3 天前
资安底座连环雷:从 PHP2Shell 到 Node2Shell
node.js·php
SEO_juper3 天前
Bash 交叉验证 robots.txt 和 sitemap:两个文件自相矛盾,页面永远收录不了
开发语言·python·node.js·json·bash