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文件,且会当改变代码保存后会自己执行一遍。

在线程内。

命令总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/368587.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络攻防模拟与城市安全演练 | 图扑数字孪生

在数字化浪潮的推动下,网络攻防模拟和城市安全演练成为维护社会稳定的不可或缺的环节。基于数字孪生技术我们能够在虚拟环境中进行高度真实的网络攻防模拟,为安全专业人员提供实战经验,从而提升应对网络威胁的能力。同时,在城市安…

【Android】二级分类双列表联动Demo

先上图: Demo解释 demo使用的是双列表展示(准确的说是三个,二级分类那里嵌套了一个),点击左边的条目,右边的列表会跳转相应的条目,滑动右边的列表,左边的列表也会相应的滑动。 代…

2024 年 10 款最佳免费无限的数据恢复软件工具

十大无限的数据恢复软件工具 数据丢失可能是一场噩梦,无论是由于意外删除、系统崩溃还是硬件故障。值得庆幸的是,有多种数据恢复软件工具可以帮助您检索珍贵的文件和文档。在本文中,我们将探讨可以拯救世界的十大最佳免费无限数据恢复软件工…

第二百零五回

文章目录 1. 概念介绍2. 实现方法2.1 文字信息2.2 红色边框 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现密码输入框"相关的内容,本章回中将介绍如何在在输入框中提示错误.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们…

RT-Thread线程管理(使用篇)

layout: post title: “RT-Thread线程管理” date: 2024-1-26 15:39:08 0800 tags: RT-Thread 线程管理(使用篇) 之后会做源码分析 线程是任务的载体,是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文,具体来说就是各个变量和数据&#xff0c…

stable diffusion学习笔记——高清修复

ai画图中通常存在以下痛点: 受限于本地设备的性能(主要是显卡显存),无法跑出分辨率较高的图片。生图的时候分辨率一调大就爆显存。即便显存足够。目前主流的模型大多基于SD1.0和SD1.5,这些模型在训练的时候通常使用小…

【Java】IoC五大注解和@Bean注解

1、用于类的五大注解 Controller 控制器存储 Service 服务存储 Component 组件存储 Configuration 配置存储 Repository 仓库存储 从功能上看,除了Controller,其他效果一样:接口的入口必须为Controller ​几者的关系如下 2、用于方法的…

Leetcode92:反转链表II(区间反转链表)

一、题目 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a…

一篇文章解决你的无线AP选型难题:从入门到精通

无线网络覆盖项目中&#xff0c;无线AP的合理选型和部署非常重要。今天给大家安排。 这篇文章&#xff0c;给你总结了6类典型的无线组网场所&#xff0c;针对每种场景的特点&#xff0c;给出相应的设备选型和部署的方案&#xff0c;同时整理了一些部署无线AP过程中容易忽略的细…

阿里云服务器一键部署幻兽帕鲁专属服务器,图形化可视化修改游戏参数是如此简单!

幻兽帕鲁这款游戏最近很火&#xff0c;在线玩家太多了&#xff0c;官方服务器也是承压巨大&#xff0c;很多玩家现在都是搭建自己的专属幻兽帕鲁服务器来玩。搭建教程现在也是越来越简单了&#xff0c;可以说是真正的零基础&#xff0c;一看就会&#xff0c;并且开箱即玩&#…

GMT绘图笔记

(1)图框设置。在利用GMT绘制图件时&#xff0c;需要设置边框的类型&#xff0c;字体的大小&#xff0c;标记距离边框的距离。主要涉及的参数有&#xff1a; gmt set MAP_FRAME_TYPE plain/fancy 可以调整边框为火车轨道或者线段。 (2)调整图框的粗细&#xff1a;主要是包含有…

浅析Redis③:命令处理之数据返回Client(下)

写在前面 Redis作为我们日常工作中最常使用的缓存数据库&#xff0c;其重要性不言而喻&#xff0c;作为普通开发者&#xff0c;我们在日常开发中使用Redis&#xff0c;主要聚焦于Redis的基层数据结构的命令使用&#xff0c;很少会有人对Redis的内部实现机制进行了解&#xff0c…

Python算法题集_合并区间

本文为Python算法题集之一的代码示例 题目56&#xff1a;合并区间 说明&#xff1a;以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需…

leetcode 1.两数之和(C++)DAY1(待补充哈希表法)

文章目录 1.题目描述示例提示 2.解答思路3.实现代码结果4.总结 1.题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&…

假期2.3

第二章 引用内联重载 一&#xff0e;选择题-* 1、适宜采用inline定义函数情况是&#xff08;C&#xff09; A. 函数体含有循环语句 B. 函数体含有递归语句‘、考科一 ’ C. 函数代码少、频繁调用 D. 函数代码多、不常调用 2、假定一个函数为A(int i4, int j0) {;}, 则执行“A …

Datawhale组队学习 Task10 环境影响

第12章 环境影响 在本章中&#xff0c;首先提出一个问题&#xff1a;大语言模型对环境的影响是什么&#xff1f; 这里给出的一个答案是&#xff1a;气候变化 一方面&#xff0c;我们都听说过气候变化的严重影响(文章1、文章2)&#xff1a; 我们已经比工业革命前的水平高出1.…

LeetCode热题HOT100【栈的压入、弹出序列】

&#x1f525;LeetCode热题HOT100【栈的压入、弹出序列】 1. 题目来源2.题目 1. 题目来源 来自LeetCode热题HOT100 https://leetcode.cn/studyplan/top-100-liked/?isDarktrue 2.题目 题目地址 Leetcode地址 3.Stack 在Java中&#xff0c;Stack 是一个基于后进先出&#…

玩美移动为花西子海外官网打造AR虚拟试妆决方案

全球领先的增强现实&#xff08;AR&#xff09;及人工智能&#xff08;AI&#xff09;美妆科技领导者及玩美系列APP开发商——玩美移动&#xff08;纽交所代码&#xff1a;PERF&#xff09;于近日宣布携手知名美妆品牌花西子&#xff0c;在其线海外官方网页提供多项彩妆虚拟试妆…

TanDEM-X30米DEM数据介绍

一、背景 之前介绍了Copernicus 30米DEM以及Alos 30米DEM数据的详细介绍以及接入到Cesium中的效果展示&#xff0c;有遥感专业工作者对比了Copernnicus、ALOA、ASTER、NASA、SRTM这几家30米DEM数据&#xff0c;得出了Copernicus 30米DEM数据是最好的全球级30米DEM数据&#xf…

Java8 中文指南(一)

Java8 中文指南&#xff08;一&#xff09; 文章目录 Java8 中文指南&#xff08;一&#xff09;《Java8 指南》中文翻译接口的默认方法(Default Methods for Interfaces)Lambda 表达式(Lambda expressions)函数式接口(Functional Interfaces)方法和构造函数引用(Method and Co…