node的使用和模块化的认识

一、node是什么?

Node.js是一个能够在服务器端运行JavaScript的开放源代码、是一个跨平台JavaScript运行环境

node.js就是使用javascript编写,并且运行在服务器。
也就是说node.js实现了使用js来开发后端。
node.js把js的战场从浏览器转移到服务器,可以进行更多的操作。

二、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叫做 模块化管理

三、模块化概念

  • 在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文件需要重新运行,否则运行还是老的文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值