本文介绍: Node.js一个开源的、跨平台的JavaScript运行环境基于Google的V8 JavaScript引擎。它可以服务器端运行JavaScript代码,并且可以处理I/O操作网络请求文件系统任务。Node.js的出现是为了弥补传统服务器端技术的不足,例如Apache和Java Web应用。相比之下,Node.js具有更高的性能更好扩展性。Node.js也提供了丰富的模块库,使得开发者可以更加轻松地构建服务器应用程序。Node.js的主要优点。

目录

认识Node.js

概述

作用

基本使用

Node.js的运行

Node.js的组成

Node.js的语法

Node.js全局对象

认识模块化开发

概述

场景

特点

模块成员的导入和导出

Node.js 模块化语法

导入模块

导出模块

ES6 模块化语法

导入模块

导出模块

项目


认识Node.js

概述

Node.js一个开源的、跨平台的JavaScript运行环境基于Google的V8 JavaScript引擎。它可以在服务器运行JavaScript代码,并且可以处理I/O操作、网络请求文件系统等任务。

Node.js的出现是为了弥补传统服务器技术的不足例如Apache和Java Web应用。相比之下,Node.js具有更高的性能更好扩展性。Node.js也提供了丰富的模块库,使得开发者可以更加轻松地构建服务器应用程序

Node.js的主要优点是非阻塞I/O和单线程执行模型,可以处理大量的并发请求。同时,它也可以与其他技术一起使用例如MongoDB、MySQL和Express.js等。

作用

Node.js的主要作用是在服务器运行JavaScript代码,它可以用于开发各种类型网络应用程序。以下是Node.js的主要作用:

  1. Web服务器:Node.js可以创建Web服务器处理HTTP请求响应,并生成动态内容

  2. 命令行工具:Node.js可以创建各种类型命令行工具比如构建工具自动化脚本等。

  3. 实时应用程序:Node.js非常适合开发实时应用程序比如在线游戏、即时聊天等。

  4. 服务:Node.js可以用于开发微服务架构,使得应用程序更加模块化,易于维护和扩展

  5. 数据库交互:Node.js可以与各种类型数据库进行交互比如MongoDB、MySQL等。

  6. API服务器:Node.js可以用于创建API服务器,为其他应用程序提供数据服务

总的来说,Node.js的作用非常广泛,它可以帮助开发者构建可伸缩、高性能、高效的网络应用程序

基本使用

Node.js的运行

以下是使用Node.js的基本步骤

  1. 安装Node.js环境:在官网https://nodejs.org/en下载安装Node.js,安装完成后在命令行输入node -v可以查看版本号,如果有版本号输出说明安装成功。

  2. 编写代码:使用文本编辑编写JavaScript代码,比如Hello World程序

    console.log("Hello World!");
    
  3. 运行代码:在命令行进入代码文件所在的目录,输入node 文件名.js运行代码,比如:

    node helloworld.js
    
  4. 查看结果:如果代码执行成功,则会在命令行中输出Hello World!。

除了上述基本步骤外,使用Node.js还需要学习掌握以下内容:

通过学习这些内容,可以更充分地利用Node.js的功能编写出更为复杂和实用的程序

Node.js的组成

JavaScript和Node.js的核心语法都是ECMAScript,JavaScript是一种脚本语言,一般运行客户端,而node.js就是运行服务端的JavaScript。

JavaScript由三部分组成,分别是ECMAScript,DOM和BOM,具体如下

ECMAScript是JavaScript的核心

规定了JavaScript的语法和基本对象,包括字符串数组、函数等。ECMAScript是跨平台、跨浏览器标准,也是JavaScript的基础。

DOM(Document Object Model 文档对象模型)是JavaScript操作网页元素接口

通过DOM可以获取修改网页中的HTML元素、CSS样式属性。DOM提供了树形结构方式表示HTML文档开发者可以使用JavaScript动态改变页面元素

BOM(Browser Object Model 浏览器对象模型)是JavaScript操作浏览器窗口框架接口

BOM提供了访问浏览器窗口、历史记录定时器对话框等浏览器级别功能。BOM没有标准化,不同浏览器实现可能会有所不同。

注意:在Node.js中,主要使用ECMAScript规范,而DOM和BOM则不适用于Node.js环境

Node.js的语法

Node.js的语法基于ECMAScript语法标准,因此和浏览器中的JavaScript语法基本一致,下面是一些常用的语法:

变量声明:Node.js可以使用varlet关键声明变量,例如:

var a = 1;
let b = 2;

其中,var关键字声明变量作用域为函数作用域let关键字声明变量作用域块级作用域

函数定义调用:Node.js的函数定义方式传统的JavaScript函数定义方式相同,例如:

function add(x, y) {
  return x + y;
}

可以使用函数名进行调用

let result = add(1, 2); // 3

也可以使用匿名函数进行定义

let add = function(x, y) {
  return x + y;
}

模块化:Node.js的模块化采用CommonJS规范,可以通过require函数引入其他模块通过module.exports导出模块。例如:

// 导入其他模块
const math = require('./math');

// 导出模块
module.exports = {
  add: math.add,
  sub: math.sub
};

回调函数:Node.js中常用的操作都是异步的,回调函数是异步编程中常用的方式,例如:

// 异步读取文件内容
const fs = require('fs');
fs.readFile('file.txt', function(err, data) {
  if (err) throw err;
  console.log(data);
});

事件:Node.js中的事件基于事件驱动编程模型,可以通过事件发射器emit()函数触发事件通过事件监听器on()函数处理事件。例如:

// 定义事件发射器
const EventEmitter = require('events');
const emitter = new EventEmitter();

// 绑定事件监听emitter.on('event', function(message) {
  console.log(message);
});

// 触发事件
emitter.emit('event', 'hello world');

以上只是一些Node.js语法的基本使用,实际开发中还有更多细节需要掌握

Node.js全局对象

以下是Node.js全局对象的语法和简单应用

console全局对象,用于控制台输出信息

console.log('Hello'); // 输出:Hello
console.error('Error message'); // 输出错误信息

process全局对象,用于获取当前进程信息、环境变量命令参数

console.log(process.argv); // 输出命令参数数组
console.log(process.env); // 输出环境变量对象
console.log(process.cwd()); // 输出当前工作目录
console.log(process.pid); // 输出当前进程进程ID

module全局对象,用于定义模块和导出变量或函数供其他模块使用。

// greeting.js
module.exports = function(name) {
  console.log('Hello ' + name + '!');
}

// main.js
const sayHello = require('./greeting.js');
sayHello('Tom'); // 输出:Hello Tom!

require全局函数,用于加载其他模块。

const fs = require('fs');
fs.readFile('example.txt', function(err, data) { 
  if (err) throw err;
  console.log(data.toString());
});

setTimeoutsetInterval:全局函数,用于延迟定时执行代码。

console.log('Start');
setTimeout(function() {
  console.log('End');
}, 3000); // 3秒后输出:End

let interval = setInterval(function() {
  console.log('Interval');
}, 1000); // 每隔1秒输出:Interval

setTimeout(function() {
  clearInterval(interval);
}, 5000); // 5秒后停止输出Interval

以上是Node.js全局对象的语法和简单应用示例,开发者应该熟悉并深入理解这些对象的使用,用于编写高效的Node.js应用程序

认识模块化开发

概述

模块化开发是一种软件架构设计模式,它将一个大型的软件系统拆分多个小的、相互独立的模块或组件每个模块或组件处理自己功能数据,通过接口和其他模块或组件进行通信协作完成整个系统的功能

举个例子在生产工作中,手机或者电脑都是由各个模块组装而成了,模块损坏可以直接替换

场景

JavaScript应用程序中,模块化开发的目的是提高代码的复用性、可维护性和可扩展性,同时降低代码的耦合度,避免全局命名空间污染和变量冲突问题

Node.js环境中,模块化采用CommonJS规范,即每个模块是一个单独的文件,通过require()函数加载其他模块,通过module.exports对象导出自己的变量和函数供其他模块使用。

浏览器环境中,模块化采用ES6模块规范,即每个模块是一个单独的文件,通过import关键字加载其他模块,通过export关键字导出自己的变量和函数供其他模块使用。

特点

封装每个模块都可以独立开发、测试和维护,对其他模块是透明的。

可重用性:模块可以被多个应用程序组件复用

可移植:模块可以被轻松地移植到其他项目中,不需要改动太多代码。

测试每个模块的功能独立,可以单独进行测试

松耦合:模块之间通过接口进行通信和协作,降低了模块之间的耦合度。

内聚:模块内部功能高度相关,代码结构清晰,易于理解和维护。

模块成员的导入和导出

模块化开发中,模块成员的导入和导出是非常重要的。Node.js支持CommonJS规范,使用module.exportsrequire实现模块成员的导出和导入。同时ES6也支持模块化语法

Node.js 模块化语法

Node.js 模块化语法通过 require 导入模块,通过 module.exports 导出模块。

导入模块
const module = require('module-name');

其中,module-name需要导入的模块名称,可以是 Node.js 内置模块名称第三方模块名称或者是自定义模块名称require 函数会返回一个对象,该对象代表被导入的模块。

导出模块
module.exports = {};

module.exports 可以是任何类型,可以是一个函数、一个对象或者是一个变量。需要被导出的内容赋值module.exports 即可

ES6 模块化语法

ES6 模块化语法通过 import 导入模块,通过 export 导出模块。

导入模块
import module from 'module-name';
//import 接收名称 from '模块路径地址';

其中,module-name需要导入的模块名称,可以是 Node.js 内置模块名称第三方模块名称或者是自定义模块名称。import返回一个对象,该对象代表被导入的模块。

导出模块
export default {};

export 可以导出任何类型,可以是一个函数、一个对象或者是一个变量。需要被导出的内容赋值export default 即可

除了 export default 以外,还可以使用以下语法对多个模块成员进行命名导出:

export const a = 1;
export const b = 2;

在导入时,可以通过以下语法进行解构赋值

import { a, b } from 'module-name';

需要注意的是,CommonJS模块是同步加载的,而ES6模块是异步加载的。另外,Node.js中也可以使用ES6模块语法,但需要文件名后加上.mjs扩展,Node.js版本也需要高于v13.2才支持

项目

使用Node.js的基本语法和模块化语法和全局对象的简单项目:打印当前系统的用户名操作系统类型

命令行中执行以下步骤

  1. 创建一个新目录,例如 project
  2. 进入该目录并执行命令 npm init,按照提示创建 package.json 文件。
  3. 在该目录下创建一个新的 JavaScript 文件,例如 index.js。
  4. index.js 中编写以下代码:
const os = require('os'); // 引入系统模块
const username = os.userInfo().username; // 获取当前用户用户名
const type = os.type(); // 获取操作系统类型

console.log(`当前系统用户名为:${username}`);
console.log(`当前操作系统类型为:${type}`);

命令行中执行 node index.js即可看到输出结果

在上述代码中,require 是 Node.js 中用来引入模块的语法,os 是一个 Node.js 自带的系统模块,可以用来获取系统相关的信息。os.userInfo() 返回当前用户的一些信息,比如用户名、家目录等。os.type() 返回当前操作系统类型,例如 Windows、Linux 等。

另外,console.log() 是 Node.js 中打印输出的方法,可以将括号内的字符串输出到命令窗口${} 是 ES6 的语法,用于将变量嵌入字符串中。

原文地址:https://blog.csdn.net/2201_75876277/article/details/134084181

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25528.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注