当前位置: 首页 > news >正文

Node需要了解的知识

Node能执行javascript的原因。

浏览器之所以能执行Javascript代码,因为内部含有v8引擎。Node.js基于v8引擎封装,因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象,BOM是浏览器对象。但是node中提供了console模块,且将console是一个全局对象,因此可以执行。

Node命令内封装了v8引擎。

相关命令

1.node -v知道是查看当前Node的版本

2.node js文件路径,看到这个命令,会去执行js文件的代码。

node js文件路径,

有以下两种方式:

                           1):相对路径:node会在前面的路径下找node后所写路径/文件。

                            2):绝对路径 node后直接写绝对路径

node命令执行js文件内../所代表的是node前面文件夹下文件开始往前。

浏览器执行时是所在文件,

因为node命令执行相对路径../会有差别,因此用在js文件中,不写./或../,写绝对路径,浏览器与node命令执行时,都不会有错。

了解

console.log()与console.dir()

两个都是输出,但是dir参数是对象时输出会更易观察各个属性,且输出不能识别标签。

后者只能输出第一个参数,前者可以输出多个参数。

fs模块

模块就是js文件,fs.js文件导出的是对象。

对于require导入,内写的如果是内置模块/npm命令生成的包,都可以直接写文件名,对于

自己定义的文件/包需要写能找到的路径

先导入,fs模块名,导入之后生成的是导出的对象,且这个对象内写了writeFile函数,该函数有三个参数,第一个是文件路径,第二个是写入的内容,第三个是回调函数,该函数执行过程是将写入内容写到文件路径,如果找不到文件,会创建对应的文件,写入之后,会执行第三个参数,调用这个回调函数,第一个参数如果写入成功传递的是null,如果失败是错误对象。

读取文件内容,fs导出的对象,内有readFile函数,第一个参数是路径,第二个参数是回调函数,这个方法调用时,会找到对应文件,读取数据,执行第二个参数,调用回调函数,第一个参数和写入一样,但是第二个参数如果写入失败也是错误对象,成功的话是数据且数据是读取的buffer对象

buffer对象的toString()返回值是字符串。

require只有node执行时才知道是什么,require函数是内置函数。因此对应模块导入导出,浏览器不能执行。

fs上述两个方法是异步,可以执行,但是写入/读取和定时器计时一样,会去执行,但是执行完了调用的回调函数是处于任务队列内。

Path模块

我们之前提出的当node执行js文件内相对路径的问题,用绝对路径即可

绝对路径可以用path模块来写,更为简易。

node内含有内置常量_ _dirname是执行node js文件所在文件夹的路径,_ _filename表示的是文件所在路径完整的。path.js文件导出的对象的join方法可以将参数的几个路径连接起来,返回值就是这个,且每个参数之间以/或\连接,看是什么系统,一个参数内也可有/\,最后会转换成系统下特定的。参数内有或../是对加/后前面的路径。\后是.,去\,..去\路径\

node

问题一:导出两方法对于模块等文件

对于模块fs,http,path等都是写的是第一种导出。因此只能用第一种导入。以及npm的导出

但是对于自定义的可以是任意一种导出,导入时需要配合package.json文件。

问题二:浏览器执行问题?

对于require函数可以返回导出的,与内置常量只有node执行会自动生成,但是浏览器只有v8引擎

无法有这些,但是如果js文件能给浏览器执行,只是看有些能否执行。

node只能执行js文件。

URL中的端口号

URL是由协议+域名+端口号+资源如今

创建web服务器

   模块化

每一个JS文件都是模块。

导入导出

1.CommonJS标准

require内如果是内置模块/npm则直接写名字,其他需要写路径。返回值是这个对象。

对于CommonJS只能导出一个。且module.export.x=1导出,导入是导入的是值,即使是对象

也只是值,且不会创建地址名为x。只要是对象就可以属性值写的是变量且和属性名一致,可以省略。

ECMAScript导出导出

export 定义的变量/常量

import {} from '模块名或路径'

export导出需要些package.json文件,未写时默认是CommonJS。导出导入需要写这个默认是

运行JS导入文件夹下需要package.json文件。只能有一种。

将模块(js文件)以及相关代码资料写在一个文件夹下。

包根据功能,分为软件包与项目包,项目包用于编写项目与业务逻辑,软件包内是工具与方法。

以及我们包内需要有package.json写清包的各个资料。

npm安装

1.npm可以安装局部软件包

执行1会在npm前面的文件夹下安装包需要的package.json文件,有该文件无需执行

执行2,会生成node_modules的文件夹在npm前面文件夹下。内有软件包。

可以直接写require(‘包名’),对于JS文件是模块可以直接写名字/npm下载的软件包,写软件包的包名,返回的是入口文件的返回值。直接写的包,也是返回入口文件的返回值,但是需要写路径

npm安装的软件包,安装时会在package.json文件内写,且会生成package-lock.json使得安装过的软件包只能是这个版本,安装时是安装最新的版本。

2.npm i

不写软件包的包名,会生成node_modules文件夹,下是package.json文件下的软件包,

如果直接磁盘传递下载很慢,但是直接npm下载较快,且自己定义的局部软件包也在弄得_modules下。

可以导入导出,但是软件包所携带的命令只能在对应软件包路径能访问才行。

3.下载全局软件包

npm i 软件包 -g下载到全局的nodemon软件包

命令可以访问,该命令会执行后面的js文件,且会当改变代码保存后会自己执行一遍。

在线程内。

命令总结

相关文章:

Node需要了解的知识

Node能执行javascript的原因。 浏览器之所以能执行Javascript代码,因为内部含有v8引擎。Node.js基于v8引擎封装,因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象,BOM是浏览器对象。但是node中提供了cons…...

网络服务综合实验项目

目录 实验要求 运行环境 基础配置 业务需求 实验步骤 一、基础配置 1.1、配置静态IP 1.1.1、 在192.168.159.130中配置 1.1.2、 在192.168.159.131中配置 ​编辑 1.2、修改主机名及hosts映射 1.2.1、在192.168.159.130中配置 1.2.2、 编辑配置hosts文件 1.2.3、重启…...

工厂模式与抽象工厂模式

如有错误或有补充,以及任何的改进意见,请在评论区留下您的高见 工厂模式 工厂模式是一种创建型设计模式。在工厂模式中,类的实例化过程通常是通过一个专门的工厂类来完成的,而不是直接在客户端代码中进行的。这样可以提供更好的…...

Springboot整合Websocket实现ws和wss连接

1. 引入pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.7.10</version> </dependency>2. 新建websocket配置文件 import org.springf…...

CSC联合培养博士申请亲历|联系外导的详细过程

在CSC申报的各环节中&#xff0c;联系外导获得邀请函是关键步骤。这位联培博士同学的这篇文章&#xff0c;非常详细且真实地记录了申请过程、心理感受&#xff0c;并提出有益的建议&#xff0c;小编特推荐给大家参考。 2024年国家留学基金委公派留学项目即将开始&#xff0c;其…...

没有外网Nginx如何配置如何开启https

判断是否支持open-ssl 在服务器执行如下命令 openssl version没有则安装open-ssl&#xff0c;由于服务器没有外网&#xff0c;可以离线安装openssl-3.0.1.tar.gz&#xff0c;我是在有网的服务器直接下载的&#xff0c;然后再上传到这台无网的服务器上 wget https://www.open…...

【Docker篇】Linux安装Docker、docker安装mysql、redis、rabbitmq

1.Linux安装docker 官方帮助文档&#xff1a;Install Docker Engine on CentOS | Docker Docs 1.1安装命令 # 1. 卸载之前的dockersudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate…...

WPF应用程序(.Net Framework 4.8) 国际化

1、新建两个资源字典文件zh-CN.xaml和en-US.xaml&#xff0c;分别存储中文模板和英文模板 (1) zh-CN.xaml <ResourceDictionary xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml&q…...

Elasticsearch:Geoshape query

Geoshape 查询可以用于过滤使用 geo_shape 或 geo_point 类型索引的文档。 geo_shape 查询使用与 geo_shape 或 geo_point 映射相同的索引来查找具有与查询形状相关的形状的文档&#xff0c;并使用指定的空间关系&#xff1a;相交&#xff08;intersect&#xff09;、包含(con…...

安装配置sqoop

一、了解Sqoop 1、Sqoop产生的原因 A. 多数使用hadoop技术的处理大数据业务的企业,有大量的数据存储在关系型数据中。 B. 由于没有工具支持,对hadoop和关系型数据库之间数据传输是一个很困难的事。 以上是sqoop产生的主要原因,也因此Sqoop主要用于hadoop与关系型数据库之…...

数据结构——实验01-线性表的链式存储和操作

一、实验内容 二、算法思想与算法实现 1、解题思想 &#xff08;1&#xff09;逆序创建链表La就是使用头插法创建一个链表&#xff0c;所谓头插法就是在创建链表时始终将新元素插入到头结点之后&#xff0c;而正序创建链表Lb就是使用尾插法创建一个链表&#xff0c;所谓尾插法…...

十分钟上手vue!

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 一 vue.js的导入及使用 vue安装…...

day37WEB攻防-通用漏洞XSS跨站权限维持钓鱼捆绑浏览器漏洞

目录 XSS-后台植入 Cookie&表单劫持&#xff08;权限维持&#xff09; 案例演示 XSS-Flash 钓鱼配合 MSF 捆绑上线 1、生成后门 2、下载官方文件-保证安装正常 3、压缩捆绑文件-解压提取运行 4、MSF 配置监听状态 5、诱使受害者访问 URL-语言要适当 XSS-浏览器网马…...

【Java程序设计】【C00215】基于SSM的勤工助学管理系统(论文+PPT)

基于SSM的勤工助学管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这个一个基于SSM的勤工助学管理系统&#xff0c;本系统共分为三种权限&#xff1a;管理员、教师和学生 管理员&#xff1a;首页、个人中心、教师管理、学生管理…...

c#的反汇编对抗

文章目录 前记nim攻防基础FFI内存加载加解密、编码 后记C#类型转换表nim基础 前记 随便编写一个c#调用winapi并用vs生成dll,同时用csc生成exe using System; using System.Runtime.InteropServices; namespace coleak {class winfun{[DllImport("User32.dll")]publ…...

设计模式之框架源码剖析(实战+图解)

Java设计模式 1&#xff0c;概述 随着软件开发人员人数的增多&#xff0c;一些公司急需一些高端人才。作为一个高端人才&#xff0c;设计面向对象软件是必不可少的能力&#xff0c;而软件设计是需要很深的功力&#xff0c;设计模式就要求你必须掌握。 2&#xff0c;本章特色…...

SQL注入:sqli-labs靶场通关(1-37关)

SQL注入系列文章&#xff1a; 初识SQL注入-CSDN博客 SQL注入&#xff1a;联合查询的三个绕过技巧-CSDN博客 SQL注入&#xff1a;报错注入-CSDN博客 SQL注入&#xff1a;盲注-CSDN博客 SQL注入&#xff1a;二次注入-CSDN博客 ​SQL注入&#xff1a;order by注入-CSDN博客 …...

浙政钉(专有钉钉)

专有钉钉是浙政钉的测试版本&#xff0c;可在正式发布之前进行业务开发。 专有钉钉 原名政务钉钉 是高安全、强管控、灵活开放的面向大型组织专有独享的协同办公平台。支持专有云、混合云等多种方式灵活部署&#xff0c;以满足客户特定场景所需为目标&#xff0c;最大化以“平…...

【lesson2】定长内存池的实现

文章目录 介绍定长内存池的设计定长内存池的实现需要成员变量需要的成员函数定长内存池结构定长内存池Delete&#xff08;释放空间&#xff09;的实现定长内存池New&#xff08;申请空间&#xff09;的实现 定长内存池的实现完整版 介绍 作为程序员(C/C)我们知道申请内存使用的…...

C++迷宫游戏详解

个人主页&#xff1a;[PingdiGuo_guo] 收录专栏&#xff1a;[C干货专栏] 大家好呀&#xff0c;我是PingdiGuo_guo&#xff0c;今天我们来学习用C实现一个迷宫游戏。 目录 1.迷宫的具体步骤 1.1.迷宫的初始化 1.2.寻路算法 1.DFS算法 2.BFS算法 1.3.移动 2.总结 C迷宫游…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...