初入Node.js必备知识

Node.js因什么而生,作用是干什么?

Node.js是一个用c和c++打造的一个引擎,他能够读懂JavaScript,并且让JavaScript能够和操作系统打交道的能力

JavaScript 原本只能在浏览器中运行,但随着Web应用程序越来越复杂,仅靠客户端JavaScript很难满足需求

当时缺乏一个基于JavaScript的服务器端运行环境,开发人员无法使用同一种语言完成端到端的开发

Node.js 的诞生是为让JavaScript 开发人员能够使用一种熟悉的语言构建高性能、可伸缩的服务器端应用程序

简单来说就是Node.js 就是为了让JavaScript语言可以写后端代码

使用Node.js 构建后端服务

这里使用node去构建一个简易的服务器,让大家体验一下Node.js 的强大

  • 首先通过npm init去创建一个项目
  • 接下来安装express
js 复制代码
npm i express

然后你就可以构建后端服务了

这里我们简单介绍一下express

Express 是一个基于 Node.js 平台的极简、灵活的 Web 应用开发框架。 它提供了一系列强大的特性,使得创建 Web 应用变得更加快捷和方便。主要特点包括:

  1. 路由管理:可以轻松定义不同的 URL 路径与相应的处理函数之间的映射,实现对不同请求的差异化处理。
  2. 中间件支持:允许在请求处理流程中添加各种中间件,用于执行如请求体解析、日志记录、身份验证、错误处理等通用功能。
  3. 模板引擎集成:能够方便地与各种模板引擎(如 Pug、EJS 等)集成,以便生成动态的 HTML 页面。
  4. 便捷的 HTTP 方法支持:对常见的 HTTP 方法(如 GET、POST、PUT、DELETE 等)提供了简洁的接口。

使用 Express 框架,可以大大提高 Node.js Web 应用的开发效率,减少重复的代码编写工作,使开发者能够更专注于业务逻辑的实现。

接下来我们创建一个index.js

js 复制代码
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}`);
});

这段 Node.js 代码使用 Express 框架创建了一个简单的 Web 应用。

运行这段代码后,就可以在浏览器中访问 http://localhost:3000 ,看到页面显示 Hello World!!!

  • 运行index.js代码
  • 浏览器显示效果

可见Node.js的功能有多么的强大

Node.js模块规范

  • 什么是模块化?

模块化是一种将复杂的软件系统分解为独立、可重用的模块的设计理念和方法。

  • JavaScript什么时候开始拥有模块化系统

JavaScript本身在早期并没有内置的模块化系统。然而,随着前端开发的复杂性不断增加,对模块化的需求也日益迫切。

CommonJS规范在服务器端的Node.js环境中很早就被采用,为JavaScript提供了一种模块化的方式。

在浏览器端,ES6引入了原生的模块化语法,包括 importexport 关键字,使得 JavaScript 在语言层面上拥有了更正式和标准的模块化支持。于 2015 年 6 月发布 ES6 开始,引入了原生的模块化语法。

可以说早期是Node.js官方为了适配JavaScript打造了模块系统,现在JavaScript自己搞了一个,属实算是小小背刺一刀了

  • CommonJS规范
js 复制代码
    // 导出模块
    module.exports = { 
        someFunction: function() {...}, 
        someVariable: 'value' 
    };

    // 引入模块
    const myModule = require('./myModule'); 
  • ES6模块规范
js 复制代码
    // 导出模块
    export function someFunction() {...} 
    export const someVariable = 'value'; 

    // 引入模块
    import { someFunction, someVariable } from './myModule'; 

Node.js中使用模块

那么我们就以操作文件为例,介绍一下模块化系统的使用

  • 首先我们先创建一个文本文件,里面的内容为Hello World
  • 接下来创建一个index.js

通过引入fs模块去操作文件系统

js 复制代码
const fs = require("fs");

通过fs的readFileSync可以读取文件

js 复制代码
const content = fs.readFileSync("./text.txt", (err, data) => {
  if (err) {
    console.log(err);
  }
});

接下来我们打印结果content,可以看到输出的结果为Hello World

还可以使用writeFileSync去创建一个文件,并向文件内输入内容

js 复制代码
fs.writeFileSync("./readme.md", "Hello World");

console.log(fs.statSync("./readme.md"))
  • fs.writeFileSync("./readme.md", "Hello World"); 这行代码会同步地将字符串 "Hello World" 写入当前目录下名为 readme.md 的文件中。如果文件不存在,会创建该文件;如果文件已存在,会覆盖其原有内容。

  • console.log(fs.statSync("./readme.md")) 这行代码会同步获取 readme.md 文件的状态信息,并将其打印到控制台。返回的状态信息包含了文件的各种属性,如文件大小、创建时间、修改时间等。

这里只是举例说明其中一个模块的部分功能

在Node.js里面还有很多的模块化系统可以供我们使用,详情可以阅读Node.js 中文网 (nodejs.cn)

总结

本文介绍了初入Node.js必备知识

相信看到这里的你一定对Node.js有了一个初步的了解

Node.js的强大远远不止于此,以后我们会继续细致的去讲解Node.js的奥秘

相关推荐
涡能增压发动积10 小时前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
Wenweno0o10 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨10 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz10 小时前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
swg32132110 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
从前慢丶10 小时前
前端交互规范(Web 端)
前端
tyung11 小时前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald11 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
CHU72903511 小时前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
GISer_Jing11 小时前
Page-agent MCP结构
前端·人工智能