初入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的奥秘

相关推荐
yuanyxh19 分钟前
macOS 应用 - 纯对话生成
前端·macos·ai编程
大家的林语冰23 分钟前
ES5 凉凉,Babel 8 正式发布,默认不再编译为 ES5 和 CJS......
前端·javascript·前端工程化
光影少年2 小时前
react批量更新、同步/异步更新场景
前端·react.js·掘金·金石计划
用户1474853079742 小时前
CodeX使用Skill生成游戏美术和音乐资源,一分钟入门
后端
假如让我当三天老蒯2 小时前
模块化:ES Module 与 CommonJS 的区别
前端·面试
用户40950115773172 小时前
Private Forge v2.0 发布:12大前端业务场景技能系统
前端
Melody1232 小时前
用 abort 中断 AI 流式请求,我之前做错了
后端
onething3652 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 5 —— SSE 流式输出 + 打字机效果
人工智能·后端·全栈
一个做软件开发的牛马3 小时前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
码事漫谈3 小时前
AI 编程的「三体」架构:OpenSpec + Superpowers + GStack 如何让一个开发者撑起整个研发团队
后端