利用http模块创建一台服务器:
// 引入一个核心模块http
let http = require("http");
// 创建一台服务器
let server = http.createServer();
// 注册一个请求事件
server.on("request",(req,res)=>{
// 解决乱码 不需要记
res.writeHead(200,{"content-type":"text/html; charset=utf-8"})
// 给客户端响应数据
res.write("<h1>hello 你好 客户端~</h1>")
// 结束响应
res.end();
})
// 监听一个商品,只要是一个服务,就要监听一个端口
server.listen(3030,()=>{
console.log("server is running on 3030~")
})
第三方模块之nodemon:
此模块,可以在我们修改代码后,自动帮我们重启服务器。
之前是可以通过node server.js
现在是通过nodemon server.js
核心模块之fs模块:
fs:filesystem 文件系统 操作文件或目录
核心模块之path模块:
处理路由的 基本上,用Node写服务器,都会用到此模块。
下载安装第三方模块:
npm npm是一个下载器 当我们安装了node 自带了下载器
要下载第三方,默认是国外下载,配置让去国内下载,nrm
nrm可以换源:
安装nrm npm i nrm -g 只要-g,就可以使用nrm这个命令
nrm use taobao 换成国内源 下载速度会快一点
nrm ls 查看都有哪些源
初始化项目:
npm init -y 初始化项目 生会一个配置文件,叫package.json文件
此文件会对项目进行描述,主要的用来记录我们项目的依赖。
第三方模块express模块:
npm i express
使用:
let express = require("express")
let app = express();
app.get("/",(req,res)=>{
res.send("hello 客户端~")
})
app.listen(3333,()=>{
console.log("server is running on 3333")
})
HTTP:
HyperText Transform Pxxx 超文本传输协议
指客户端与服务器之前通信(服务器给客户端一些数据,客户端给服务器一些数据)的规则。
HTTP请求:
....
HTTP响应:
....
路由:
app.get("/",(req,res)=>{ // 一个地址,对应了一个响应
res.send("hello 客户端~")
})
托管静态资源:
我们写的html,css,js,img都是静态资源,在express中可以通过一行代码来托管静态资源。
模板:
你现在就把HTML文件当成一个模块。一般情况下,模板是放在views目录下面的。
渲染模板:res.render()
安装ejs: npm i ejs
我们向服务器发一个请求,核心有两种请求方式:
1)get请求 偏向于向服务器要数据 当然也可以把数据给服务器
A)浏览器的地址栏就可以发起get请求
B)a标签的href也可以发起get请求
C)link标签的href也可以发起get请求
D)script 标签的 src也可以发起get请求
E)img标签的src也可以发起get请求
F)form表示也可以发起Get表示
....
特点:
1)会数据放到地址栏中 不太安全
2)post请求 偏向于把数据扔给服务器
利用form表示发起get请求:
1)action表示此请求地址
2)method请求的方式
3)表单中的input必须要有一个name属性
<form action="http://localhost:3333/doreg" method="get">
<ul>
<li>用户名:<input type="text" name="username"></li>
<li>密码:<input type="password" name="pwd"></li>
<li><input type="submit" value="注册"></li>
</ul>
</form>
获取post请求携带的数据:
1)安装 body-parser
2)配置 代码直接copy
3)req.body就可以获取post请求的携带的数据