<!-- 后端-服务器,后台-数据库,数据操作 -->
<h1>客户端</h1>
<a href="1.jpg"></a>
<!-- js模块和 js文件最直观的区别:
文件: 1. 使用时, script 标签引入的是整体文件,需要
2.需要文件名.文件格式
3.同级目录一下直接写文件名
模块: 1. 使用时,require引入的是模块中导出的部分
2.只需要模块名称即可
3.同级目录下,路径的前缀必须加./-->
<script>
// console.log(a) 当两个文件中都申请了变量a 有一个会死,也就是变量污染
// 1. 使代码的结构更加清晰,便于后期维护
// 2. 避免变量污染,每一个模块 都有自己独立的命名空间
// 3. 可以按需加载, 提升性能
htt.js文件
// console.log("大家好") // 客户端/服务端 看你在哪打开
const http = require("http") //引入一个模块 通过模块创建一个服务 不需要加.js是因为内置已经带上了
const server = http.createServer((req,res)=>{ //服务里传两个参数
res.write("hello 12345");
res.end();
})
//端口号
server.listen(3000); //监听一下
// console.log("我是index.js");
require("./home") //自定义模块(层级路径加./ 必须写) 在文件很多的情况下新建一个home文件夹,直接引入home模块
// 相当于装订一本书home是书名,home下有很多的文件夹 ,同级加 ./
require("tt") //存放在node_modules下,按照内置模块来执行 用起来直接写名字
// require("jquery")
// let $cv = 20;
// console.log($cv)
let a = 20;
class Person{
constructor(){
}
hobby(){
console.log("你喜欢干啥")
}
}
console.log("我说Ma.js");
// let a = 10;
// 1.导入方式1 使用变量来保存接收的数据
// let {a,Person} = require("./index.js")
// console.log("我是被导入的");
// let p = new Person;
// p.hobby();
// 2.导入方式2 直接使用解构赋值 推荐方法
//
// 上述导入的方式,实际上是一种导入,有不同的接收方式
// 1 module.exports : 接收一个对象,对象中包含多个按需导出的内容,(数量不限)
// 建议 :按需导出
module.exports = {
a,
// Person
}
// 2. exports : module.exports 的引入导出单个目标时,使用
// exports.a = a;
// exports.Person = Person