node的使用和模块化认识

node使用

1. node运行文件

  • node执行js的方式是在cmd命令行运行
  • 运行方式两种
    1. 直接打开命令行输入node,进入node环境,书写javascript,这种方式书写javascript关闭命令行就需要在重新写一遍,一般开发不推荐使用这种方式。
      • 退出node环境按下两次ctrl+c
    2. 第二种写好一个js文件,利用node执行这个文件(推荐)
      • node 文件名.js
          // index.js
          for(let i=0;i<10;i++){
              console.log(i)
          }
      
  • 这种方式运行每一次只能运行一个js文件,但是我们项目不可能由一个文件构成,所以我们项目一般都会有一个入口文件,由这个文件引入了其他的js文件
     项目结构
    --- project
        --- index.js (入口文件)
        --- a.js
        --- b.js
        --- c.js
  • 之前我们在浏览器环境可以利用script标签方式引入多个js文件
    <script src="./a.js"></script>
    <script src="./b.js"></script>
    <script src="./c.js"></script>
    <script src="./index.js"></script>
  • 在node里面没有html,都是js文件,那么如何在一个js引入其他的js,这种机制在node叫做模块化管理

2. 模块化概念

  • 在node里面每一个js文件被称为一个模块,每一个模块都是独立的,一个模块里面无法访问另一个模块里面的数据
  • 模块化就是用来管理一个模块能够访问另一个模块里面的数据
  • node为了解决模块之前的数据通信引入了commonjs规范
  • 一个模块如果想要访问另一个模块的数据,需要一个模块里面导入另一个模块导出。简单理解就是我问你要,你得愿意给我。导入就是我问你要,导出就是我愿意给你。
  • 导出
    • 单条导出,导出名可以自定义
    // a.js
    // 属性
    const a = 1
    const b = 2
    // 方法
    function getSum(num,num2){
        return num + num2
    }
    // 单个导出数据  exports.导出名 = 数据
    exports.a = a
    exports.b = b
    exports.fn = getSum
    
    • 多条导出
    // b.js
    // 属性
    const a = 1
    const b = 2
    // 方法
    function getSum(num,num2){
        return num + num2
    }
    // 多条导出
    module.exports = {
        a: a,
        b,
        fn: getSum
    }
    
  • 导入
    • 无论是单条还是多条导入都采用require
    • const 数据 = require(文件路径)
    • 此处文件后缀名可以省略不写,默认js文件
        // c.js
        const data = require('./a')
        const data02 = require('./b.js')
        console.log(data)
        console.log(data02)
        console.log(data.a)
        console.log(data.b)
        data.fn()
    
    • 导入的数据都是对象的格式
    • 可以使用对象解构的语法,这样就可以直接使用数据,而不需要对象名.key
        // d.js
        const {a,b,fn} = require('./a')
        const data02 = require('./b.js')
        console.log(data)
        console.log(data02)
        console.log(a)
        console.log(b)
        fn()
    
  • 此处运行javascript需要注意,修改js文件需要重新运行,否则运行还是老的文件

nodemon安装和使用

  • nodemon可以像node一样运行javascript文件,但它的优点是运行之后文件只要我们修改文件就会自动在重新运行
  • 安装
    • npm i nodemon -g
  • 使用
    使用
  • nodemon可以像node一样运行javascript文件,但它的优点是运行之后文件只要我们修改文件就会自动在重新运行
  • 安装
    • npm i nodemon -g
  • 使用
    • nodemon javascript文件

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

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

相关文章

磁盘没有满 为什么提示磁盘空间不足?原来是inode惹的祸。

我为什么知道是inode 的问题呢&#xff1f; 接下备好瓜子花生来且听我分析 我一个免费开源根据ip获取用户地理位置的api 突然报错如下 failed to open stream: No space left on device in 然后登录linux 使用shell命令 自动补全功能竟然也提示磁盘空间不足 报错如下 cd /-b…

ES单节点部署

ES 拉取镜像 docker pull elasticsearch:7.10.1启动容器 docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e "ES_JAVA_OPTS-Xms1g -Xmx1g" -v /es_data:/usr/share/elasticsearch/data --name es 558380375f1a注&#xff1a…

微信小程序怎么盈利?探索微信小程序的盈利途径与建设流程

微信小程序自推出以来&#xff0c;凭借其无需下载安装、即用即走的特点&#xff0c;在移动互联网领域迅速占据了重要地位。商家和开发者们纷纷投入其中&#xff0c;希望借助这一平台实现商业价值的转化。那么&#xff0c;微信小程序是如何为开发者和商家带来盈利的呢&#xff1…

配置与管理防火墙

配置与管理防火墙 1&#xff0c;概念&#xff1a;设置在不同网络或网络安全域之间的一系列部件的组合。 2&#xff0c;功能&#xff1a;保护内网中易手攻击的服务&#xff1b;控制内外网之间网络系统的访问&#xff1b;隐藏内网的IP地址及结构的细节&#xff0c;提高网络保护…

【操作系统概念】 第5章:进程调度

文章目录 0.前言5.1 基本概念5.1.1 CPU-I/O 区间周期5.1.2 CPU程序调度5.1.3 抢占调度5.1.4 分派程序 5.2 调度准则5.3 调度算法5.3.1 先到先服务调度(First-Come&#xff0c;First-Served scheduling)5.3.2 最短作业优先调度(shortest-job-first scheduling,SJF)5.3.3 优先级调…

docker 安装 portainer

小编给友友们总结了一下 Portainer 的好处以下 Portainer是Docker的图形化管理工具&#xff0c;提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作&#xff08;包括上传下载镜像&#xff0c;创建容器等操作&#xff09;、事件日志显示、容器控制台操作、Swar…

掘根宝典之C语言原码,反码,补码,位操作运算符(~,,|,^,<<,>>,=,|=,^=,>>=,<<=)

目录 二进制数 什么是二进制数 c语言中的二进制数 机器数 原码 正数计算 负数计算 反码 负数计算 跨零计算 补码 定义 跨零计算 总结 按位逻辑运算符&#xff08;~&#xff0c;&&#xff0c;&,|&#xff0c;|&#xff0c;^&#xff0c;^&#xff09; 按…

玩家至上:竞技游戏设计如何满足现代玩家的需求?

文章目录 一、现代玩家需求分析二、以玩家体验为核心的游戏设计三、个性化与定制化服务四、强化社交互动与社区建设五、持续更新与优化《游戏力&#xff1a;竞技游戏设计实战教程》亮点编辑推荐内容简介目录获取方式 随着科技的飞速发展和游戏产业的不断壮大&#xff0c;现代玩…

java工程师面试技巧,最新Java开发面试解答

一、前言 聊的是八股的文&#xff0c;干的是搬砖的活&#xff01; 面我的题开发都用不到&#xff0c;你为什么要问&#xff1f;可能这是大部分程序员求职时的经历&#xff0c;甚至也是大家讨厌和烦躁的点。明明给的是拧螺丝的钱、明明做的是写CRUD的事、明明担的是成工具的人…

基于词袋模型的场景识别(附源代码!!!)

目录 1. 任务要求2. 数据集3. 实现算法4. 实验结果5. 源代码 1. 任务要求 输入&#xff1a;给定测试集图片&#xff0c;预测在15个场景中的类别。任务&#xff1a; 实现Tiny images representation。实现最近邻分类器nearest neighbor classifier。实现SIFT特征词袋表示 输出&…

原生IP是什么?如何获取海外原生IP?

一、什么是原生IP 原生IP地址是互联网服务提供商&#xff08;ISP&#xff09;直接分配给用户的真实IP地址&#xff0c;无需代理或转发。这类IP的注册国家与IP所在服务器的注册地相符。这种IP地址直接与用户的设备或网络关联&#xff0c;不会被任何中间服务器或代理转发或隐藏。…

嵌入式学习-FreeRTOS-Day1

一、重点 1、VCC和GND VCC&#xff1a; 1、电路中为电源&#xff0c;供应电压 2、3.3v-5v 3、数字信号中用1表示GND&#xff1a; 1、表示地线 2、一般为0v 3、数字信号中用0表示2、电容和电阻 电容 存储电荷 存储能量&#xff1a; 电容器可以在其两个导体板&#xff08;极…

java开发工程师面试技巧,小白必看

什么是分布式锁&#xff1f;在回答这个问题之前&#xff0c;我们先回答一下什么是锁。 普通的锁&#xff0c;即在单机多线程环境下&#xff0c;当多个线程需要访问同一个变量或代码片段时&#xff0c;被访问的变量或代码片段叫做临界区域&#xff0c;我们需要控制线程一个一个…

随机变量及其分布错题本

《1800》 1 需要从概率密度出发&#xff0c;在积分成为分布函数的情况下将 x 拉回为 -x来进行计算&#xff0c;所以X与-X最后得出的分布函数会一样。 2 3 4 5 6 7 8 9 10 11 12 13 14 15

二维码门楼牌管理系统应用场景:市场研究机构的新宠

文章目录 前言一、市场研究机构的新工具二、市场分析与区域趋势研究三、支持企业决策与市场营销策略四、与市场研究机构的联动效应五、未来展望 前言 在数字化时代&#xff0c;二维码门楼牌管理系统以其独特的优势&#xff0c;正在成为市场研究机构的新宠。通过收集和分析门牌…

Linux常用命令之top监测

(/≧▽≦)/~┴┴ 嗨~我叫小奥 ✨✨✨ &#x1f440;&#x1f440;&#x1f440; 个人博客&#xff1a;小奥的博客 &#x1f44d;&#x1f44d;&#x1f44d;&#xff1a;个人CSDN ⭐️⭐️⭐️&#xff1a;传送门 &#x1f379; 本人24应届生一枚&#xff0c;技术和水平有限&am…

算法——动态规划

1. 什么是动态规划&#xff1f; 动态规划&#xff08;Dynamic Programming&#xff09;是一种解决多阶段决策问题的优化方法。它通常用于解决具有重叠子问题和最优子结构性质的问题&#xff0c;能够将一个大问题分解为多个重叠的子问题&#xff0c;并通过存储子问题的解来避免重…

SpringBoot+Mybatis-plus+shardingsphere实现分库分表

SpringBootMybatis-plusshardingsphere实现分库分表 文章目录 SpringBootMybatis-plusshardingsphere实现分库分表介绍引入依赖yaml配置DDL准备数据库ds0数据库ds1 entitycotrollerserviceMapper启动类测试添加修改查询删除 总结 介绍 实现亿级数据量分库分表的项目是一个挑战…

小白跟做江科大51单片机之DS1302按键可调时钟

1.引入上一个程序的代码 2.引入Key和Timer0文件 3.获取按键值 定义全局变量unsigned char keynum main函数中 keynumKey(); 4.设置第一个按键的两种模式&#xff0c;以此来控制时钟的设定和显示 if(keynum1) { if(MODE0) { …

GDB调试入门笔记

文章目录 What&#xff1f;WhyHow安装GDB安装命令查看是否安装成功调试简单的程序预备一个程序调试 使用breakinfolistnextprintstep一些小技巧在gdb前shell日志功能watch point| catch point 调试core调试一个运行的程序 What&#xff1f; GDB是什么&#xff1f; 全称GNU sym…