node使用
1. node运行文件
- 
node执行js的方式是在cmd命令行运行
 - 
运行方式两种
- 
直接打开命令行输入node,进入node环境,书写javascript,这种方式书写javascript关闭命令行就需要在重新写一遍,一般开发不推荐使用这种方式。
- 退出node环境按下两次ctrl+c
 
 - 
第二种写好一个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文件
 
