Node.JS(2)--使用node执行js文件

news/2024/11/15 3:23:15/

目录

知识回顾

CommentJS规范

ECMAScript标准规范

模块化

CommonJS规范

模块化


知识回顾

I/O (Input/output)

        I/O操作指的是对磁盘的读写操作

Node

  • Node是对ES标准一个实现,Node也是一个JS引擎
  • 通过Node可以使js代码在服务器端执行
  • Node仅仅对ES标准进行了实现,所以在Node中不包含DOM和 BOM
  • Node中可以使用所有的内建对象

        string Number Boolean Math Date RegExp Function object Array

        而BOM和DOM都不能使用,但是可以使用console也可以使用定时器(setTimeout () setInterval() )

Node可以在后台来编写服务器

Node编写服务器都是单线程的服务器

进程

进程就是一个一个的工作计划(工厂中的车间)

线程

线程是计算机最小的运算单位(工厂中的工人),线程是千活的

传统的服务器都是多线程的

每进来一个请求,就创建一个线程去处理请求

Node处理请求时是单线程,但是在后台拥有一个I/O线程池

CommentJS规范

ECMAScript标准规范

  • 没有模块系统
  • 标准库较少
  • 没有标准接口
  • 缺乏管理系统

模块化

  • 如果程序设计的规模达到了一定程度,则必须对其进行模块化。
  • 模块化可以有多种形式,但至少应该提供能够将代码分割为多个源文件的机制。
  • CommonJS的模块功能可以帮我们解决该问题。

CommonJS规范

  • CommonJS规范的提出,主要是为了弥补当前JavaScript没有标崔的缺陷。
  • CommonJS规范为JS指定了一个美好的愿景,希望JS能够在任何地方运行。

CommonJS对模块的定义十分简单

模块引用

模块定义

模块标识

模块化

  • 在Node中,一个js文件就是一个模块
  • 在Node中,每一个js文件中的js代码就是独立运行在函数中,而不是全局作用域,就相当于一个闭包,所以一个模块的变量和函数在其他模块中无法访问

 就相当于下图,闭包中的变量和函数不能被外面的函数或者操作访问

如果想对外部的模块访问到,可以通过exports来向外部暴露变量和方法

向外部暴露属性或方法

exports.x=20;exports.y=100;exports.fn=function(){}

 

 引入其他的模块

在node中,通过require()函数来引入外部的模块,require()可以传递一个文件的路径作为参数,node将会自动根据该路径来引入外部模块;如果使用相对路径,必须用.或者..开头

使用require()引入模块以后,该函数会返回一个对象,这个对象代表的是引入的模块


http://www.ppmy.cn/news/10578.html

相关文章

3 机器学习之聚类

学习笔记自,慕课网 《Python3 入门人工智能》 https://coding.imooc.com/lesson/418.html#mid32716 分类问题 1. 无监督学习 机器学习的一种方法,没有给定事先标记过的训练示例,自动对输入的数据进行分类或分群 优点: 1&#xf…

Redis基础知识

1.1 Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复…

Python基础(二十三):面向对象之继承介绍

文章目录 面向对象之继承介绍 一、继承的概念 二、单继承 三、多继承 四、子类重写父类同名方法和属性 五、子类调用父类的同名方法和属性 六、多层继承 七、super()调用父类方法 八、私有权限 1、定义私有属性和方法 2、获取和修改私有属性值 面向对象之继承介绍 …

Java Stream 的遍历/筛选/去重/统计/求和/平均值/排序/累计/跳过

1.遍历&#xff08;forEach&#xff09; public static void main(String[] args) {List<Person> userList new ArrayList<>();userList.add(new Person("段誉",25));userList.add(new Person("萧峰",40));userList.add(new Person("虚竹…

《诛仙番外:桃夭》

by&#xff1a;殊彦【GH】 雪飘如絮&#xff0c;寒风凛凛&#xff0c;波涛山峦银装素裹&#xff0c;大地披上白毛毡&#xff0c;今天便是那除夕。 青云山&#xff0c;大竹峰&#xff0c;守静堂内&#xff0c;却是一派暖意&#xff0c;炉子里柴火烧的正旺&#xff0c;源源不断的…

【FPGA】中值滤波处理BMP图片

文章目录一、中值滤波二、BMP图片格式三、功能实现1.代码设计思路2.shift IP核3.代码实现四、结果测试参考博客一、中值滤波 中值滤波法是一种非线性平滑技术&#xff0c;它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。 中值滤波是基于排序统计理论…

Jenkins安装

Jenkins安装1、Jenkins简介2、Jenkins安装2.1 安装条件2.2 安装JDK2.2.1 检索可用包2.2.2 安装2.3 下载Jenkins的war包2.4 启动jenkins并测试3、安装maven1、Jenkins简介 Jenkins是一款开源 CI&CD 软件&#xff0c;用于自动化各种任务&#xff0c;包括构建、测试和部署软件…

序列化——谨慎实现Serializable

何为序列化 序列化与反序列化对应。 序列化&#xff1a;将一个对象转为字节流 反序列化&#xff1a; 将字节流转为对象 通过序列化继续&#xff0c;可以将对象编码之后&#xff0c;通过网络传输到其他应用中&#xff0c;再反序列化&#xff0c;实现远程交互调用。 如何序列…