Node.js后端开发 - 基础篇 #2 全局对象

2023-11-06

文章目录

一、前言

二、全局对象

1、console打印输出

2、setTimeout超时输出

3、setInterval循环间隔输出

4、clearInterval 清除循环间隔输出

5、__dirname输出当前所在目录

6、__filename输出当前所在文件目录


一、前言

上篇文章对nodejs做了简单介绍 Node.js后端开发 - 基础篇 #1 课程介绍与开发环境搭建,今天我们来看一下nodejs的全局对象,在浏览器中我们也有一个全局对象叫window,它里面的方法我们在哪里都可以调用,比如说console.log之类的,那么在nodejs中我们也有类似的全局对象,如下面这些,全都是全局对象,在哪里都可以调用,不用导入什么之类的!

可参考nodejs的 api 地址:Global Objects | Node.js v9.11.2 Documentation

二、全局对象

1、console打印输出

我们来看一下,上篇文章里面写的一行nodejs的代码

console.log("hello world");

在这里这个console就是一个全局对象,它根本不用导入,我们在哪里都可以调用到它。下面我们看一下命令行输出

bogon:hello-nodejs luminal$ node app
hello world
bogon:hello-nodejs luminal$ node app.js
hello world
bogon:hello-nodejs luminal$ 

因为我们安装了nodejs,所以就有node命令了,node app( 文件名 )即可输出,不写.js的后缀也可以

2、setTimeout超时输出

setTimeout代码示例

setTimeout(() => {
    console.log(" 3秒 超时的输出内容!");
}, 3000);

输出内容

bogon:hello-nodejs luminal$ node app
 3秒 超时的输出内容!
bogon:hello-nodejs luminal$ 

其中,这个箭头函数 "=>" 是es6的写法,我们来看一下常规写法:

//es6写法
setTimeout(() => {
    console.log(" 3秒 超时的输出内容!");
}, 3000);

//常规写法
setTimeout(function() {
    console.log(" 3秒 超时的输出内容!");
}, 3000);

也就是说,这里setTimeout的第一个参数是一个方法,它是一个匿名方法,即不用带名字的方法

3、setInterval循环间隔输出

setInterval代码示例

setInterval(() => {
    console.log("每隔2秒 输出的内容!");
}, 2000);

说明代码意思是每隔2秒进行输出,我们来看一下输出结果:

bogon:hello-nodejs luminal$ node app
每隔2秒 输出的内容!
每隔2秒 输出的内容!
每隔2秒 输出的内容!

^C
bogon:hello-nodejs luminal$ 

值得注意的是,你要结束命令,可以执行 control + c 的快捷键。

下面我们加一个变量累加的效果,代码如下:

var time = 0;

setInterval(() => {
    time += 2;
    console.log(time + "每隔2秒 输出的内容!");
}, 2000);

我们来看一下输出结果:

ogon:hello-nodejs luminal$ node app
2每隔2秒 输出的内容!
4每隔2秒 输出的内容!
6每隔2秒 输出的内容!
8每隔2秒 输出的内容!
10每隔2秒 输出的内容!
12每隔2秒 输出的内容!
^C
bogon:hello-nodejs luminal$ 

4、clearInterval 清除循环间隔输出

clearInterval代码示例:

var time = 0;

var timeFlag = setInterval(() => {
    time += 2;
    console.log(time + "每隔2秒 输出的内容!");
    if(time>5){
        clearInterval(timeFlag);
    }
}, 2000);

我们来看一下输出结果:

bogon:hello-nodejs luminal$ node app
2每隔2秒 输出的内容!
4每隔2秒 输出的内容!
6每隔2秒 输出的内容!
bogon:hello-nodejs luminal$ 

5、__dirname输出当前所在目录

__dirname代码示例:

console.log(__dirname);

我们来看一下输出结果:

bogon:hello-nodejs luminal$ node app
/Users/luminal/Desktop/nodejs/hello-nodejs
bogon:hello-nodejs luminal$ ls
app.js
bogon:hello-nodejs luminal$ 

6、__filename输出当前所在文件目录

__filename代码示例:

console.log(__filename);

我们来看一下输出结果:

bogon:hello-nodejs luminal$ node app
/Users/luminal/Desktop/nodejs/hello-nodejs/app.js
bogon:hello-nodejs luminal$ 

除此之外require、exports等全局变量,这个会在讲解模块的时候会说到!

下一篇文章:Node.js后端开发 - 基础篇 #3 回调函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js后端开发 - 基础篇 #2 全局对象 的相关文章

  • 使用 Ajax Jquery post 请求进行 Json 劫持

    昨天 我读了一些关于如何预防的好文章使用 Asp Net MVC 进行 Json 劫持 http haacked com archive 2009 06 24 json hijacking aspx 规则是 永远不要通过 get 请求发送
  • 在节点环境中存根 jQuery.ajax (jQuery 2.x)

    我正在尝试运行一些需要存根的测试jQuery ajax 我正在使用 SinonJS 来做到这一点 它曾经与旧版本的 jQuery 1 x 一起工作得很好 var require jquery var sinon require sinon
  • JavaScript 字符串中的脚本标签[重复]

    这个问题在这里已经有答案了 我遇到一个问题 即 JavaScript 中带引号的字符串内有结束脚本标记 并且它正在杀死脚本 我认为这不是预期的行为 可以在这里看到这样的示例 http jsbin com oqepe edit http js
  • 如何将 Observables 数组与 RxJS 6.x 和 Node.js 合并?

    出于学习目的 我正在创建一个 Node 应用程序 该应用程序需要从数组中获取 x RxJS 可观察值并将其组合成单个事件流 我想知道事件何时以任何可观察的方式 以任何顺序发生 不是以任何顺序或完全完成 我觉得它应该在一个合并的事件流中 基本
  • 从选择 onChange 调用 javascript 函数 [重复]

    这个问题在这里已经有答案了 所以我有一个简单的 HTML 选择框和一个 javascript 警报功能 我希望选择框有一个 onchange 事件来调用 javascript 警报函数 这是我到目前为止所拥有的 HTML div Type
  • 如何将 Ajax.BeginForm MVC 助手与 JSON 结果一起使用?

    我正在尝试使用 ASP NET MVC Ajax BeginForm 帮助程序 但不想在调用完成时使用现有的内容插入选项 相反 我想使用自定义 JavaScript 函数作为回调 这可行 但我想要的结果应该以 JSON 形式返回 不幸的是
  • 检测 Webkit/Chrome 中 HTML5 数字控件更改的事件?

    HTML5 为我们提供了一些新的输入元素 例如
  • Angular UI 路由器嵌套视图问题

    我在理解 Angular UI Router 嵌套视图的工作原理时遇到了一些问题 我的 stateProvider 看起来像这样 stateProvider state login url login views main template
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 如何将一个数组中的所有项目复制到另一个数组中?

    如何将数组的每个元素 其中元素是对象 复制到另一个数组中 以便它们完全独立 我不想更改一个数组中的元素来影响另一个数组 这里的关键是 数组中的条目是对象 并且 您不希望对一个数组中的对象的修改显示在另一个数组中 这意味着我们不仅需要将对象复
  • .points 不透明度/大小在三个.js 内

    我回来回答有关 points 的第二个问题 这次想知道如何将不透明度从 0 更改为 1 然后又回到距发射器的特定像素距离内 var particleCount 14 particles new THREE Geometry pMateria
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • 可以禁用幻灯片的触摸模拟但不能禁用滚动条(危险的滑动器)吗?

    我的页面上有一个危险的滑动器 它成功地模拟了幻灯片和随附滚动条上的触摸事件 允许单击鼠标并移动以向左或向右滑动幻灯片 这很好 但我现在在滑动器内的幻灯片上调用了可拖动 这意味着我需要停止此触摸模拟 拖动幻灯片并同时移动它们会引起混乱 但仅限
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 使用express.js动态加载路线

    我使用express js作为网络服务器 并且想要一种简单的方法来将所有 app get 和 app post 函数分开以分隔文件 例如 如果我想为登录页面指定 get 和 post 函数 我希望在动态加载的路由文件夹中有一个 login
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • 如何在 React Native 中使用相同的 Firebase 数据库在两个应用程序之间进行通信?

    我有两个不同的应用程序使用相同的实时数据库 在第一个应用程序中 我发送的订单包含一些要保存在数据库中的数据字段 在另一个应用程序中 我只添加一个侦听器 firebase database ref userOrder currentUser
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询

随机推荐

  • 为你精选107个本科软件工程专业的计算机毕业设计项目推荐

    当面对茫茫计算机毕业设计题目海洋 你是否感到无所适从 不知如何选出一个富有创新意义的题目 今天 我们将为大四的同学们分享一些毕业设计项目 希望能给你的毕业设计带来一些灵感 一 成品列表 以下所有springboot框架项目的源码博主已经打包
  • sql:mysql:截取某个字符 1.最后一次出现的之前的字符串 2.最后出现那次的之后的字符串

    截取某个字符最后一次出现 如 之前的字符串 示例字符串 我是 中国 人 select REVERSE 我是 中国 人 from dual 人 国中 是我 select INSTR REVERSE 我是 中国 人 1 from dual 2
  • [零刻]EQ12&EQ12Pro安装OpenWRT软路由教程

    OpenWRT系统安装 安装前准备 1 U盘一个 2 WePE写盘工具 3 Openwrt固件 4 Img镜像写盘工具 安装步骤 1 首先下载WePE写盘工具 制作一个PE系统安装环境 启动软件后 选择安装PE到U盘 2 插入U盘后 刷新一
  • jQuery 查找文本并高亮

    让我们来看一下如何使用 jQuery 去查找或搜索一段文本并高亮它 我是 jQuery 的忠实粉丝 喜欢它简介的语法 接下来让我演示一个示例 仅使用一行 jQuery 代码便可把搜索字段进行高亮
  • <HTML>简单登录页面代码

    这是一个简单的静态的html页面登录图片 之前写的 验证码方面没有搞懂 这里我重新参考了这里 但是部分功能还没有完善 仅供参考
  • 2023年全国硕士研究生入学统一考试英语(一)试题

    2023年全国硕士研究生入学统一考试英语 一 试题 Section I Use of Englis Directions Read the following text Choose the best word s for each num
  • 毕业论文找文献是个问题,我直接用python把全网文献爬了一遍,这波就很舒服

    文章目录 一 写在前面 二 准备工作 三 开始爬取 四 效果展示 一 写在前面 马上要毕业了兄弟们 毕业论文是个麻烦事 论文要的资料得一条一条去网上查看 那多浪费时间 咱直接写个爬虫 批量下载慢慢看 不舒服 二 准备工作 使用软件 Pyth
  • mysql char 和varchar的区别?

    char 和varchar的区别 1 char 一定会使用指定的空间 varchar是根据数据来定空间 2 char的插入数据效率理论上比varchar高 varchar是需要通过后面的记录数来计算 使用哪一种类型 如果确定数据一定是占指定
  • C++桌面端使用 zxing-cpp 和 opencv 生成二维码(带中间logo)

    一 环境工具准备 VS2019 Cmake zxing cpp 源代码 https gitee com asalmc zxing cpp opencv4 2 0 二 zxing cpp 编译 1 源码目录下新建build文件夹存放构建目录
  • EC20 配置DHCP客户端自动获取IP

    1 dnsmasq介绍 Dnsmasq为小型网络提供网络基础设施 DNS DHCP 路由器通告和网络引导 它被设计为轻量级且占用空间小 适用于资源受限的路由器和防火墙 它还被广泛用于智能手机和便携式热点的共享 并支持虚拟化框架中的虚拟网络
  • 特征训练、预测一致性管理工具:开源项目Feast

    在机器学习的流程大体可以分成模型训练和模型服务两个阶段 无论是训练和服务阶段 其实都需要进行特征工程相关的工作 这块的技术挑战就是如何保证训练和预测过程中使用的特征是一致的 这个问题困扰了很多机器学习从业者 比较典型的场景就是推荐场景 在推
  • phpstudy(小皮模板存在nginx解析漏洞)

    前言 好久没写文章了 最近比较忙 今天抽个空写点东西 phpstudy介绍 PhpStudy国内12年老牌公益软件 集安全 高效 功能与一体 已获得全球用户认可安装 运维也高效 支持一键LAMP LNMP 集群 监控 网站 数据库 FTP
  • IAR 软件激活步骤

    1 下载IAR软件 然后点击安装 一路NEXT 2 安装后激活 需要断网 3 打开IAR软件 在软件目录中点击help License manger 4 弹出IAR License manager界面 点击license offline a
  • 阿里云商标注册入口/查询/买卖/分类表/撤三/续展/驳回复审入口汇总一键直达

    阿里云商标服务包括商标注册申请 商标近似查询 商标买卖 商标分类表 商标撤三申请 商标续展申请 商标驳回复审 商标起名及商标管理后台等服务 阿里云百科汇总阿里云商标服务入口大全 本文长期更新阿里云商标注册各种链接地址 阿里云商标服务入口链接
  • matplotlib学习

    figure axes axis add subplot subplot figure包括axes figure是画板 axes是画板上的子图 figure 使用add subplot pyplot使用的是subplot生成一个figure
  • (理财八)普通必须掌握的理财方式----定投

    理财八 普通必须掌握的理财方式 定投 我们先要了解一种 一直会用到的 打理股权类产品的投资方式一一基金定投 基金定投不是一个产品 是打理账户用的方法 是未来讲到股票基金配置时候 买入频率的方法 这种方法是被验证确实能帮小白理财者挣到钱的方式
  • 计算机网络01之计算机网络分层结构

    计算机网络01 1 计算机网络分层结构 1 下层为上层提供服务 SDU数据单元 为完成用户所要求功能而应传送的数据 PCI协议控制单元 控制协议操作的信息 PDU协议数据单元 对等层次之间传送的数据单位 2 OSI 7层参考模型 OSI 7
  • 微分中值定理定义及几何意义

    微分中值定理定义及几何意义 1 罗尔定理 2 拉格朗日中值定理 3柯西中值定理 1 罗尔定理 如果函数f x 满足 1 在闭区间 a b 上连续 2 在开区间 a b 内可导 3 f a f b 则在 a b 内至少有一点 a b 使得f
  • QT信号和槽

    系列文章目录 提示 这里可以添加系列文章的所有文章的目录 目录需要自己手动添加 例如 第一章 Python 机器学习入门之pandas的使用 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一
  • Node.js后端开发 - 基础篇 #2 全局对象

    文章目录 一 前言 二 全局对象 1 console打印输出 2 setTimeout超时输出 3 setInterval循环间隔输出 4 clearInterval 清除循环间隔输出 5 dirname输出当前所在目录 6 filenam