Node需要了解的知识

news2024/11/19 15:11:46

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

在线程内。

命令总结

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postgres与DynamoDB:选择哪个数据库

启动新项目时需要做出的决定之一是使用哪个数据库。如果您使用的是Django这样的包含电池的框架,那么没有理由再三考虑。选择一个受支持的数据库引擎,就可以了。另一方面,如果你使用像FastAPI或Flask这样的微框架,你需要自己做出这…

手把手教你搭建属于自己的网站(获取被动收入),无需服务器,使用github托管

大家好,我是亚洲著名程序员青松,本次教大家如何搭建一个属于自己的网站。 下面是我自己搭建的一个网站,是一个网址导航网站。托管在了github上面,目前已经运营了三个月,每天的访问量大约有100ip左右。 下图是在51.la上…

一键部署FC超级马里奥web游戏

效果展示 安装 拉取镜像 #拉取镜像 docker pull stayhungrystayfoolish666/mario #创建并启动容器 docker run -d -p 10034:8080 --name maliao --restartalways stayhungrystayfoolish666/mario:latest 使用 浏览器打开 http://你的ip:10034/

微信小程序 安卓/IOS兼容问题

一、背景 在开发微信小程序时,不同的手机型号会出现兼容问题,特此记录一下 二、安卓/IOS兼容问题总结 2.1、new Date()时间转换格式时,IOS不兼容 问题:在安卓中时间格式2024-1-31 10:10:10,但是在iOS中是不支持 &q…

基于FFT + CNN - BiGRU-Attention 时域、频域特征注意力融合的电能质量扰动识别模型

目录 往期精彩内容: 引言 1 快速傅里叶变换FFT原理介绍 第一步,导入部分数据,扰动信号可视化 第二步,扰动信号经过FFT可视化 2 电能质量扰动数据的预处理 2.1 导入数据 第一步,按照公式模型生成单一信号 2.2 …

JavaScript基础五对象 内置对象 Math.random()

内置对象-生成任意范围随机数 Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1) 如何生成0-10的随机数呢? Math.floor(Math.random() * (10 1)) 放大11倍再向下取整 如何生成5-10的随机数&…

wespeaker项目grpc-java客户端开发

非常重要的原始参考资料: 链接: triton-inference-server/client github/grpc java ps: 使用grpc协议的其它项目python/go可以参考git hub目录client/tree/main/src/grpc_generated下的其它项目 其它链接: 想要系统了解triton-inference-ser…

最近nvm安装报错的原因找到了——npm原淘宝镜像正式到期!

前言 📫 大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步! 🍅 个人主页:南木元元 目录 背景 错误原因 问题排查 淘宝镜像 证书到期 问题解决 结语 背景 我们…

在PostgreSQL中不开归档?恭喜你!锅你背定了

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

获取ping值最小IP

有时候我们访问一个网站,想要选择最佳的IP地址,那就可能需要修改hosts文件。那么怎么获取最佳的IP地址呢,我们以访问github为例。 获取IP 首先是看对应的url会解析出哪些IP。可以在通过站长工具测试多个地点Ping服务器,网站测速 - 站长工具…

【循环结构·js】

变量命名原则 变量名由字母、下划线、$ 或数字组成,并且必须由字母、下划线、$ 开头。 变量名不能命名为系统关键字和保留字。 JS代码在sourse里面调试 document.write(str); /*在页面上输出变量 str 的值*/数据类型的分类 为什么要标识数据类型: 不…

【C语言】通讯录实现(下)

目录 1.进阶通讯录特点(下) 2.实现步骤 (1)保存增加的联系人数据到文件中 (2)加载保存的联系人数据 3.完整C语言通讯录代码 (1)contact.h (2)test.c (3)contact.c 4.结语 1.…

【C++初阶】--入门基础(二)

目录 一.C输出与输入 二.缺省参数 1.概念 2.缺省参数分类 (1) 全缺省参数 (2)半缺省参数 三.函数重载 1.概念 2.C支持函数重载的原理--名字修饰 四.引用 1.概念 2.语法 3.引用的特性 (1)引用在定义时必须初始化 (2)引用时不能改变指向 (3)一个变量…

故障诊断 | 一文解决,RF随机森林的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,RF随机森林的故障诊断(Matlab) 模型描述 随机森林(Random Forest)是一种集成学习(Ensemble Learning)方法,常用于解决分类和回归问题。它由多个决策树组成,每个决策树都独立地对数据进行训练,并且最终的预测结果是由所有决策…

使用apifox创建一个Mock Server Api 接口

安装 下载 Apifox - API 文档、调试、Mock、测试一体化协作平台。拥有接口文档管理、接口调试、Mock、自动化测试等功能,接口开发、测试、联调效率,提升 10 倍。最好用的接口文档管理工具,接口自动化测试工具。 创建mock api项目中使用 创建项…

【C++初阶】--入门基础(一)

目录 一.命名空间 1.前言引入 2.namespace关键字 (1)前言 (2)域作用限定符 :: (3)命名空间域namespace ① 细节理解 ② 命名空间的名称相同 ③命名空间的嵌套 (4)命名空间的使用 ① 加命名空间名称及作用域限定符 ②使用using将命名空间中某个成员引入 ③ 使用u…

【2024美赛】F题(中英文):减少非法野生动物贸易Problem F: Reducing Illegal Wildlife Trade

【2024美赛】F题(中英文):减少非法野生动物贸易Problem F: Reducing Illegal Wildlife Trade 写在最前面2024美赛翻译 —— 跳转链接 中文赛题问题F:减少非法野生动物贸易你的工作应探讨以下子问题:参考文献词汇表 英文…

zabbix-监控应用程序(Mysql、Nginx)

基础环境:zabbix服务端、两台zabbix被监控端、分别安装Mysql和Nginx环境拓扑图: 实验目标:可以通过zabbix监控到被监控端上安装的mysql与nginx,通过zabbix实时检测mysql和nginx的数据。实验步骤:1.在8.7服务器上安装My…

推荐收藏!算法工程师面试常考的手撕面试题!

今天给大家分享一些算法工程师技术面试中常手撕的代码。 不管是秋招还是社招,互联网大厂的技术面试中的手撕代码这一部分总是绕不过去的一关。 如果你对这些感兴趣,可以文末找我们交流 手撕 numpy写线性回归的随机梯度下降(stochastic gra…

实习|基于SSM的实习管理系统设计与实现(源码+数据库+文档)

实习管理系统目录 目录 基于SSM的实习管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能介绍 (1)管理员登录 (2)实训方向管理 (3)公告信息管理 (4&#xff0…