Node.js官方模块: 6、http模块 - 超级重点:搭建服务器
引入了http(搭建服务器)、url(区分开路由和请求消息)、fs(读取文件响应给用户看)
var http=require("http");
var url=require("url");
var fs=require("fs");
//创建服务器应用
var app=http.createServer();
//为其绑定监听端口
app.listen(80);
//为其绑定请求事件:http:请求 - 响应模式,必须要有一个请求,才有一个响应
app.on("request",(req,res)=>{
//req:request(请求)对象,他有一个属性叫做req.url,看了一获取到前端传到后端 的路由和请求消息,但是路由和请求消息是融为一体的,不方便我们获取某个部分,所以我们引入了url,进行解析,分开两部分
var objUrl=url.parse(req.url,true);
//保存路由
var router=objUrl.pathname;
if(router=="/" || router=="/index.html"){//判断路由的不同,读取不同的页面给用户看
//res:response(响应)对象,他有一个方法:res.end(响应的内容) - 可以响应给前端想要的东西
fs.readFile("./public/html/index.html",(err,buf)=>{
res.end(buf);//res.end只能用一次
})
}
})
扩展:字符串有一个API:math var rs=str.match(reg);和indexOf几乎一致,但是支持正则,我们不关心为多少,只关心为不为null
强调:一切的src和href都是一个请求都是一个路由,这个请求就需要后端来解析,根据不同的请求响应不同的内容
完成了:1、使用代码搭建服务器&文件系统
2、模块(每个.js文件)的分类 1、官方模块:不需要下载,再安装Node.js环境的时候就已经自带了,但是有的模块需要引入:require("模块名"); 2、第三方模块 3、自定义模块:自己书写的xx.js:require("./模块名");
为什么有的模块引入要./有的又不用加./
自定义模块:分为2大类
1、文件模块:创建xx.js去公开需要公开的内容,主模块要引入,必须写为require("./模块名");
2、目录模块:3种用法
1、比如创建m1的文件夹,在其中创建index.js的文件,去公开需要公开的内容,主模块要引入,必须写为require("./m1");
2、比如创建m2的文件夹,在其中创建xx.js的文件,,去公开需要公开的内容,主模块要引入,必须写为require("./m2");
必须再创建一个package.json的配置文件,写入:{"main":"xx.js"}
3、创建一个文件夹必须名为:node_modules,再在其中创建出m3文件夹,在其中创建index.js的文件,去公开需要公开的内容,主模块要引入,必须写为require("m3");
其实真实开发中,我们程序员用的最多的是文件模块,目录模块的第三种方式其实根本不是给人用的(第三方模块下载后会自动创建此文件夹)
3、如何下载第三方模块: npm工具:Node Package Manager:Node.js的模块/包管理器,专门用于管理第三方模块的,作用:下载、更新、删除、维护包之间的依赖关系 打开网址:npm官网www.npmjs.com/ 搜索你需要用到的模块:尽量用带有完全符合标签的那个包,或者是 第一个包: 1、打开cmd:检查npm是否安装成功:npm -v 2、在你的项目之中,再打开cmd 3、下载:npm i 包名 4、更新:npm up 包名 5、删除:npm un 包名
作业: 1、把你的金夫人/咖啡的中文全部换掉,然后使用Node.js搭建服务器&文件系统,并且把你ip发到群里,服务器开好,让其他人来访问,如果别人不能通过ip访问你,说明你的电脑的防火墙没关闭 2、试试npm能不能用,下载好mongoose 3、解压:mongodb-win32-x86_64-2008plus-ssl-3.6.11.zip放在哪里都可以 安装mongodb-compass-1.33.1-win32-x64.exe,最好放在C盘