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
npm i express
然后你就可以构建后端服务了
这里我们简单介绍一下express
Express 是一个基于 Node.js 平台的极简、灵活的 Web 应用开发框架。
它提供了一系列强大的特性,使得创建 Web 应用变得更加快捷和方便。主要特点包括:
- 路由管理:可以轻松定义不同的 URL 路径与相应的处理函数之间的映射,实现对不同请求的差异化处理。
- 中间件支持:允许在请求处理流程中添加各种中间件,用于执行如请求体解析、日志记录、身份验证、错误处理等通用功能。
- 模板引擎集成:能够方便地与各种模板引擎(如 Pug、EJS 等)集成,以便生成动态的 HTML 页面。
- 便捷的 HTTP 方法支持:对常见的 HTTP 方法(如 GET、POST、PUT、DELETE 等)提供了简洁的接口。
使用 Express 框架,可以大大提高 Node.js Web 应用的开发效率,减少重复的代码编写工作,使开发者能够更专注于业务逻辑的实现。
接下来我们创建一个index.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引入了原生的模块化语法,包括 import
和 export
关键字,使得 JavaScript 在语言层面上拥有了更正式和标准的模块化支持。于 2015 年 6 月发布 ES6 开始,引入了原生的模块化语法。
可以说早期是Node.js官方为了适配JavaScript打造了模块系统,现在JavaScript自己搞了一个,属实算是小小背刺一刀了
- CommonJS规范
// 导出模块module.exports = { someFunction: function() {...}, someVariable: 'value' };// 引入模块const myModule = require('./myModule');
- ES6模块规范
// 导出模块export function someFunction() {...} export const someVariable = 'value'; // 引入模块import { someFunction, someVariable } from './myModule';
Node.js中使用模块
那么我们就以操作文件为例,介绍一下模块化系统的使用
- 首先我们先创建一个文本文件,里面的内容为Hello World
- 接下来创建一个index.js
通过引入fs模块去操作文件系统
const fs = require("fs");
通过fs的readFileSync可以读取文件
const content = fs.readFileSync("./text.txt", (err, data) => {if (err) {console.log(err);}
});
接下来我们打印结果content,可以看到输出的结果为Hello World
还可以使用writeFileSync去创建一个文件,并向文件内输入内容
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的奥秘