初步感受Node.js
//引入kttp模块
const http = require("http");
//创建服务器
const serve = http.createServer((req, res) => {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
console.log("hello"); //黑窗口中显示
// 发送响应数据 "Hello World"
res.end("hello world"); //页面中显示
})
serve.listen(3000) //端口
这是初步的node 启动node
在黑窗口中 cd 找到你这个文件的绝对路径
cmd黑框框清空
- 输入cls命令
切记 每次在编译器修改完内容,都需要在黑窗口在Ctrl+c关闭,在重新开启
nodemon安装与启动
npm i nodemon -g 指令 (全局安装)
它可以免除那些复杂的操作 做完修改后自动更新
启动的话就会变成==nodemon 1.js==
nodemon 1.js 启动服务
下面的这个问题是 nodemon 只能在黑窗口中来启动
下面是解决上面问题 从而实现在编译器内运行启动
在电脑下面搜索 windows PowerShell
然后选择以管理员身份打开
Ctrl+c 结束当前运行的进程
模块化
1 . 是代码的结构更加清晰 便于后期维护
2. 避免变量污染,每一个模块都有自己独立的命名空间
3. 可以按需加载,提升性能
变量污染
同时在一个html里面引用不同的js 他就会有冲突
let a = 10;
在node下
JS模块和js文件 使用时最直观的区别
文件 1. 使用时 ,script标签引入的事整体文件,需要
2。 需要文件名,文件格式
3. 同级目录下直接写文件名,文件格式即可
模块: 1. 使用时,require引入的是模块中导出的部分
2. 只需要模块名称即可
3. 同级目录下,路径的前缀必须加 ./
导出
let a = 10;
console.log(a)
class Person {
constructor() {
}
hobby() {
console.log("喜欢啊")
}
}
//导出 建议:按需导出
//两种
// 1. module.exports: 接受一个对象,对象中包含多个需要导出的内容。(数量不限)
// 建议:按需导出
module.exports = {
a,
Person
}
//2. exports : module.exports的引用,导出单个目标时,常用
//exports.a = a;
//exports.Person = Person;
导入
console.log("我是ma");
// let a = 10;
//1. 导入方式1 使用变量来保持接收到的数据
// let Spa = require("./index.js");
// console.log(Spa);
// console.log("我是被导入的" + Spa.a);
// let p = new Spa.Person();
// p.hobby();
//2. 导入方式2 直接使用解构赋值 推荐方式
let { a, Person } = require("./index.js");
console.log("我是被导入的" + a);
let p = new Person();
p.hobby();
//上述导入的方式,实际是一种方式,不同的接收方式