node的使用和模块化认识

node使用

1. node运行文件

  • node执行js的方式是在cmd命令行运行

  • 运行方式两种

    1. 直接打开命令行输入node,进入node环境,书写javascript,这种方式书写javascript关闭命令行就需要在重新写一遍,一般开发不推荐使用这种方式。

      • 退出node环境按下两次ctrl+c
    2. 第二种写好一个js文件,利用node执行这个文件(推荐)

      • node 文件名.js
      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文件

html 复制代码
    <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规范

  • 一个模块如果想要访问另一个模块的数据,需要一个模块里面导入另一个模块导出。简单理解就是我问你要,你得愿意给我。导入就是我问你要,导出就是我愿意给你。

  • 导出

    • 单条导出,导出名可以自定义
    js 复制代码
    // 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
    • 多条导出
    js 复制代码
    // 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文件
    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
    js 复制代码
        // 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文件
相关推荐
乔旭伟10 分钟前
Vben3 中后台表格封装实战:useVbenVxeGrid 的全局收敛与七个坑
前端·anti-design-vue·1024程序员节
鶴哥只手遮天19 分钟前
jQuery 4.0 源码架构与工程实践-第 10 章 尺寸、几何与显隐
前端·javascript·jquery
Mia_墨黎20 分钟前
2026 Windows 11 终端美化完全指南
前端·后端
用户18806874935239 分钟前
戴着 Rokid 接成语:用 AIUI 做一局有提示、有复盘的“接着说”
前端
Sakura_j_h_1 小时前
Three.js 单文件离线机械臂工作台:爆炸图、透明外壳与剖面
前端·机械臂·webgl·three.js·1024程序员节·esbuild
2401_885885042 小时前
国际语音C#接口怎么写?.NET环境下实现国际语音验证码批量下发
开发语言·c#·.net
计算机魔术师2 小时前
管谷歌的不是Pichai一个人,是一整层AI智能体
前端
米米商聊2 小时前
图标能点,按钮就可用了吗?键盘、名称与收藏状态
前端·javascript
程序猿乐锅3 小时前
【从0-1学习Python | 第七篇】Python 面向对象基础
开发语言·笔记·后端·python·学习·1024程序员节
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 查询圈子个人动态:查询我的动态需求分析
java·开发语言·交友