首页 > 编程语言 >Nodejs基本概念

Nodejs基本概念

时间:2024-06-20 09:00:27浏览次数:11  
标签:Node npm fs const Nodejs js console 基本概念

 Node.js 基本概念

前言

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,主要用于构建服务器端应用。由于其高效的事件驱动和非阻塞 I/O 模型,Node.js 在处理高并发和实时应用方面具有显著优势。本篇文章将介绍 Node.js 的基本概念,帮助初学者快速上手。

1. 什么是 Node.js?

Node.js 是一个开源的、跨平台的 JavaScript 运行时环境,允许开发者使用 JavaScript 编写服务器端代码。它最初由 Ryan Dahl 在 2009 年创建,并迅速流行起来,成为构建现代 Web 应用的常用工具。

 1.1 Node.js 的特点

非阻塞 I/O:采用事件驱动和非阻塞 I/O 模型,使得 Node.js 能够处理大量并发连接。
单线程:Node.js 使用单线程处理请求,但通过事件循环机制实现了高并发。
JavaScript:使用 JavaScript 作为主要编程语言,前后端代码可以共享。
庞大的生态系统:拥有丰富的第三方模块,通过 npm(Node Package Manager)进行管理。

2. 安装 Node.js

在开始使用 Node.js 之前,首先需要在系统上安装 Node.js 和 npm。可以从 [Node.js 官网](https://nodejs.org) 下载并安装适用于你操作系统的版本。

安装完成后,可以通过以下命令验证是否安装成功:

```bash
node -v
npm -v
```

3. 第一个 Node.js 应用

下面是一个简单的示例,展示如何使用 Node.js 创建一个基本的 HTTP 服务器。

```javascript
// 引入 http 模块
const http = require('http');

// 创建服务器对象
const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!\n');
});

// 监听端口
const port = 3000;
server.listen(port, () => {
  console.log(`服务器运行在 http://localhost:${port}/`);
});
```

保存以上代码为 `app.js`,然后在命令行中运行:

```bash
node app.js
```

打开浏览器访问 `http://localhost:3000`,你将看到 "Hello, World!" 的输出。

4. 模块系统

Node.js 有一个内置的模块系统,允许开发者将代码组织成独立的模块。每个文件都是一个模块,可以通过 `require` 引入其他模块。

 4.1 创建和引入模块

创建一个名为 `math.js` 的模块:

```javascript
// math.js
function add(a, b) {
  return a + b;
}

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

module.exports = { add, subtract };
```

在另一个文件中引入并使用该模块:

```javascript
// app.js
const math = require('./math');

const sum = math.add(5, 3);
const difference = math.subtract(5, 3);

console.log(`Sum: ${sum}`);
console.log(`Difference: ${difference}`);
```

5. 异步编程

Node.js 的核心是异步编程模型,这使得它在处理 I/O 密集型任务时表现出色。常用的异步编程方法包括回调函数、Promise 和 async/await。

5.1 回调函数

回调函数是最基本的异步编程方式,但容易导致回调地狱。

```javascript
const fs = require('fs');

fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});
```

5.2 Promise

Promise 提供了一种更优雅的方式处理异步操作。

```javascript
const fs = require('fs').promises;

fs.readFile('example.txt', 'utf8')
  .then(data => {
    console.log(data);
  })
  .catch(err => {
    console.error(err);
  });
```

5.3 async/await

async/await 是基于 Promise 的语法糖,使得异步代码看起来更像同步代码。

```javascript
const fs = require('fs').promises;

async function readFile() {
  try {
    const data = await fs.readFile('example.txt', 'utf8');
    console.log(data);
  } catch (err) {
    console.error(err);
  }
}

readFile();
```

6. npm 和包管理

npm 是 Node.js 的包管理工具,允许开发者安装和管理项目所需的依赖包。常用的 npm 命令包括:

- `npm init`: 初始化一个新的 npm 项目
- `npm install <package>`: 安装一个包并将其添加到项目依赖中
- `npm uninstall <package>`: 卸载一个包

6.1 示例:安装 Express

```bash
npm init -y
npm install express
```

创建一个简单的 Express 服务器:

```javascript
const express = require('express');
const app = express();
const port = 3000;

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

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

7. 结束语

通过本文的介绍,相信你对 Node.js 的基本概念有了一定的了解。Node.js 作为一个高效、灵活的服务器端解决方案,已经被广泛应用于各种 Web 应用和服务中。希望你能通过实践不断深入学习 Node.js,开发出更加出色的应用。

如果你对 Node.js 感兴趣,可以参考官方文档获取更多信息:[Node.js 官方文档](https://nodejs.org/en/docs/)

标签:Node,npm,fs,const,Nodejs,js,console,基本概念
From: https://blog.csdn.net/ztlhhh/article/details/139797651

相关文章

  • [模式识别复习笔记] 第1-2章 基本概念
    1.模式识别系统的各个设计环节模式采集:借助物理设备(传感器、摄像头)进行数据的采集和存储。预处理:数据清洗、降噪,增强数据中有用的信息。特征提取:提取数据中对识别有用的特征。分类器学习:根据训练数据特点,选择何时的分类器模型,利用训练集学习得到参数。2.模式......
  • nodejs学习08——会话控制 session cookie token
    会话控制一、介绍所谓会话控制就是对会话进行控制HTTP是一种无状态的协议,它没有办法区分多次的请求是否来自于同一个客户端,无法区分用户而产品中又大量存在的这样的需求,所以我们需要通过会话控制来解决该问题常见的会话控制技术有三种:cookiesessiontoken二、cooki......
  • 什么是大模型?一文读懂大模型的基本概念
    大模型是指具有大规模参数和复杂计算结构的机器学习模型。本文从大模型的基本概念出发,对大模型领域容易混淆的相关概念进行区分,并就大模型的发展历程、特点和分类、泛化与微调进行了详细解读,供大家在了解大模型基本知识的过程中起到一定参考作用。本文目录如下:·大模型的......
  • 【408考点之数据结构】数据结构的基本概念
    数据结构的基本概念基本概念和术语数据结构是计算机科学中一个非常重要的概念,它描述了数据元素之间的关系及其在计算机内存中的组织方式。理解数据结构的基本概念和术语是学习数据结构的第一步。数据结构可以分为逻辑结构和存储结构两类。逻辑结构是指数据元素之间的逻辑......
  • 基于Vue+Nodejs实现医药商城销售系统
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......
  • 射频设计基本概念
    单位:dB(分贝)&dBm(毫瓦分贝)功率增益Ap=10lg(Pout/Pin),电压增益Av=20lg(Vout/Vin),他们的单位都是分贝(dB)当放大器的输入输出电阻相同时,以上两个量相等,即:Ap=10lg[(Vout^2/R0)/(Vin^2/R0)]=20lg(Vout/Vin)=Av其中的Vout、Vin为均方根值(交流电中与有效值相等)对于绝对信号电......
  • 大话考研数据结构:第3篇 数据结构的基本概念(下)
    1数据结构        数据结构(datastructure)是指相互之间存在一种或多种特定关系的数据元素的集合。现实世界中,任何的数据元素并非孤立存在的,它们之间存在千丝万缕的某种关系,它们的这种称之为“结构”。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的......
  • win10 安装 nodejs
    转载自:https://www.cnblogs.com/Leo_wl/p/12388273.html#_label01、在使用之前,先类掌握3个东西,明白它们是用来干什么的:npm: nodejs下的包管理器。webpack:它主要用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源作相应的准备,比如资源的合并和打包。vue-cli:......
  • OpenTelemetry 实践指南:历史、架构与基本概念
    背景之前陆续写过一些和OpenTelemetry相关的文章:实战:如何优雅的从Skywalking切换到OpenTelemetry实战:如何编写一个OpenTelemetryExtensions从一个JDK21+OpenTelemetry不兼容的问题讲起这些内容的前提是最好有一些OpenTelemetry的背景知识,看起来就不会那么枯燥,为......
  • 用Napi编写nodejs Addon并调用dll
    用Napi编写nodejsAddon并调用dllnpdejs调用C++addon并没有先前那篇随笔那么复杂,这是一篇补充说明:说明如何使用c++项目的include头文件以及lib,dll引入到addon内使用一、使用VS编写DLL导出项目步骤1:通过VisualStudio(推荐2019及其以上)新建一个“具有导出项的(DLL)动态链接库......