文章目录
1. 直接打开命令行输入node,进入node环境,书写javascript,这种方式书写javascript关闭命令行就需要在重新写一遍,一般开发不推荐使用这种方式。
一、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文件需要重新运行,否则运行还是老的文件