官方模块
1、buffer模块 - 缓冲区,本质是一块内存区域,用于暂存以后可能用到的数据(数字、字符串、二进制图片、视频、音频),该区域就称之为缓存
不需要引入的直接使用
var buf=Buffer.from("hello world");
注意:buffer我们可以简单理解为是一个node.js新提供的数据类型,但不方便我们认识/看懂,此方法我们绝对不会手动使用,
但是node中的别的API可以执行了某个操作过后,就会返回我们一个buffer类型,也别怕,因为node中大部分API是支持直接使用buffer
2、fs模块 - 全称filesystem - 文件系统 - 小重点!
fs模块提供了对象文件系统中的文件进行读写的功能
需要引入:
const fs = require('fs');
fs.readFile("文件路径",(err,buf)=>{
buf - 就是你读取到的东西,只不过自动转为了buffer类型
})
fs.writeFile("文件路径","新内容"/buf,(err)=>{
})
fs.appendFile("文件路径","新内容"/buf,(err)=>{
})
注意:vscode的部分同学可能不能再此处书写相对路径,只能写绝对路径__dirname
3、http模块 - 代码搭建http服务器 - 大重点
http:请求 - 响应模式,有请求才有响应,一个请求一个响应
功能:
1、可以接受前端发来的请求消息的
2、解析前端发来的请求消息
3、根据前端的需求我们回去去读请求到的文件,响应给他看
如何使用: 固定模块
var http=require("http");
var url=require("url");
var fs=require("fs");
var app=http.createServer();
app.listen(80);
app.on("request",(req,res)=>{
var objUrl=url.parse(req.url,true);
var router=objUrl.pathname;
if(router=="/index.html" || router=="/"){
fs.readFile("./public/html/index.html",(err,buf)=>{
res.end(buf);
})
}else if(router.match(/html/)!=null){
fs.readFile("./public/html"+router,(err,buf)=>{
res.end(buf);
})
}else if(router.match(/css|js|jpg|png|gif|woff|woff2|ttf/)!=null){
fs.readFile("./public"+router,(err,buf)=>{
res.end(buf);
})
}
})
特殊:
1、有的同学,可能写不了相对路径,必须书写绝对路径
2、一旦搭配服务器端不允许出现中文路径
3、以后会有更多的路由可能是跟数据库挂钩的
1、自定义模块:两种形式
学了这个你就知道为什么有的模块要加./引入,有的模块不用加./引入
1、*文件模块
创建一个xx.js,导出需要公开的数据,主模块想要引入必须写为require("./文件路径")
2、目录模块
方式1:创建一个文件夹,名为m1,其中再创建一个名为index.js的文件导出需要公开的数据,主模块想要引入必须写为require("./文件夹路径")
方式2:创建一个文件夹,名为m2,其中再创建一个名为xx.js的文件导出需要公开的数据,但是需要再创建一个必须名为package.json的配置文件写入:{"main":"xx.js"},主模块想要引入必须写为require("./文件夹路径")
*方式3:创建一个文件夹,必须名为node_modules,再在其中创建一个文件夹:名为m3,其中再创建一个名为index.js的文件导出需要公开的数据,主模块想要引入必须写为require("m3")
第三种方式看上去最屌,但是操作起来最麻烦,而且这个玩意儿根本不是给人用的,给机器自动生成的,理论上来说我们正式开发自己会使用的是文件模块
2、NPM:Node Package Manager:Node.js的第三方模块包/模块管理器:可用于下载、更新、删除、维护包的依赖关系
npm不需要下载安装,再你安装node.js的时候就已经安装好了
检查一下是否有npm:打开cmd:输入npm -v 如果有版本号出现说明你电脑里已经有了npm
打开npm官网:www.npmjs.org,搜索我想要的模块
下载:npm i 包名
更新:npm up 包名
删除:npm un 报名
毕竟npm是国外的,下载速度可能很慢,你希望快一点可以先安装一个cnpm:
npm install cnpm -g --registry=https://registry.npmmirror.com
3、数据库:很多很多的跟网页/网站/软件/小程序挂钩的数据(新闻、产品、用户...)
关系型数据库:以表格形式为主
Oracle - Oracle公司(甲骨文)
适用于【企业级】开发市场:大公司、国企、事业单位(医院、警察局)。安全性极高
MySQL - Oracle公司(甲骨文)
适用于【互联网】开发市场:中小型公司、免费!
SQLServer - 微软:大学讲课
非关系型数据库 - 没有固定格式,是一种运动,反关系型数据库
mongoDB - 以JSON格式为主 - 免费!
吹牛逼:
MySQL/mongoDB一经退出立刻爆火
原因:免费 开源 简单
最初使用MySQL AB软点化公司推出,后来被收购sun公司,再后来sun公司又被oracle收购了
oracle
mysql - 社区版(免费)和 商业版(收费)
java