第一种方式:采用nod.e.js内置的http模块
//导入web服务器http模块
const http = require("http")
//创建web 服务器实例
const sever = http.createServer((req, res) => {
// console.log(req.url);//前端网址
// console.log(req.method);//请求方式
// console.log(req.query);//获取到查询的字符串的数据
// console.log(req.headers);//请求头对象
// res.write("hello world");//只是写的,但是没响应
// res.end();//代表响应结束
//http://127.0.0.1:8081/login?username=xiaoji&password=123456
// console.log(req.url);
const path = req.url.split("?")[0]//获取请求路径
const query = req.url.split("?")[1];//获取查询字符串数据
// console.log(path, query);
if (req.method == "GET" && path == "/login") {
// console.log("接收到/login的请求了");
//创建一个URLSearchParams类型的对象,参数是查询字符串
const userData = new URLSearchParams(query);
console.log(userData);
//get方法,从URLSearchParams类型的对象中根据key获取value;
let un = userData.get("username");
//判断账号
if (userData.get("username") == "xiaoji") {
//账号正确,密码判断
if (userData.get("password") == "123456") {
//账号密码都正确
let resMes = JSON.stringify({ code: 2, msg: "登陆成功" })
res.write(resMes)
} else {
let resMes = JSON.stringify({ code: 1, msg: "密码错误" })
res.write(resMes)
}
} else {
let resMes = JSON.stringify({ code: 0, msg: "账号错误" })
res.write(resMes)
}
res.end();
}
})
//启动服务器,第一个参数代表端口号,第二个回调函数
sever.listen(8081, function () {
console.log("开启 http://127.0.0.1 这个端口号");
})
获取post请求的请求体数据方式

小拓展(将api接口和参数分开并创建一个新对象(通过get(key)获取里面的参数),并将新对象转换为object对象)

第二种方式,采用第三方的express包
cmd运行命令 npm i express,下载第三方包到当前文件夹
//1.导入express
const xj = require("express")
//2.创建web服务器
const app = xj()
//3.监听get,post请求,并向客户端响应具体内容
//通过app.get()方法,可以监听客户端的GET请求,具体的语法格式如下:
//通过app.post()方法,可以监听客户端的POST请求,具体的语法格式如下:
// 参数1: 客户端请求的URL地址
// 参数2: 请求对应的处理函数
// req: 请求对象(包含了与请求相关的属性与方法)
// res: 响应对象(包含了与响应相关的属性与方法)
//通过express提供的res.send()方法,可以把处理好的内容,发送给客户端:
app.get("/user", function (req, res) {
//通过express提供的res.send()方法,向客户端相应一个json对象
res.send({ name: "张三", age: 20, gender: "男" })
})
app.post("/user", function (req, res) {
//通过express提供的res.send()方法,向客户端相应一个文本字符串
res.send("post请求成功")
})
/**
* 获取URL中携带的查询参数
*
* 通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:
*
* req.query 默认是一个空对象客户端使用?name=2s&age=20这种查询字符串形式,发送到服务器的参数,可以通过req.query对象访问到,例如:req.query.name,req.query.age
*/
app.get("/", function (req, res) {
console.log(req.query);
//通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:
res.send(req.query)
})
//注意:这里的:id是一个动态的参数,id是一个参数,可以换名,后面可以跟多个参数
//http://127.0.0.1/user/1/张三
//通过req.params对象,可以访问到URL中,通过:匹配到的动态参数:
app.get("/user/:id/:name", function (req, res) {
//req. params是动态匹配到的 URL参数,默认也是一个空对象
console.log(req.params);
res.send(req.params)
})
//4.启动服务器 调用app.listen(端口号,启动成功后的回调函数),启动服务器
app.listen(80, function () {
console.log("启动服务器:http:127.0.0.1");
})
express相关参数
const express = require("express")
const app=express()
app.use(express.urlencoded({extended:false}))
app.get("/",function(req,res){
console.log(req.url,"----查询字符串");
console.log(req.method,"----请求方式");
console.log(req.query,"----获取get请求参数");
console.log(req.body,"----获取post请求参数");
console.log(req.headers,"----请求头数据");
console.log(res.send({code:1,msg:'信息'}),"----响应数据");
console.log(res.json({code:1,msg:'信息'}),"----响应json数据,自动转换json");
})
app.post("/",function(req,res){})
app.listen(80, function () {
console.log("开启了127.0.0.1服务器");
})
小案例(附带jQuery的GET和POST请求)
const express = require("express")
const app = express()
app.use(express.urlencoded({ extended: false }))
app.use(express.json())
app.use(express.static("./public"))
app.get("/login", function (req, res) {
console.log(req.query, req.method);
res.json({ success: 1, data: "请求成功" })
})
app.post("/zhuce", function (req, res) {
console.log("接收到注册的请求了", req.body, req.method);
res.json({ success: 1, data: "请求成功" })
})
app.listen(80, function () {
console.log("开启了127.0.0.1服务器");
})
GET请求
<script>
$("form").submit(function(e){
e.preventDefault();
let username=$("[type=text]").val()
let password=$("[type=password]").val()
$.get(`http://127.0.0.1/login?username=${username}&password=${password}`).done(function(data){
console.log(data);
})
})
</script>
POST请求
<script>
$("form").submit(function (e) {
e.preventDefault();
let username = $("[type=text]").val()
let password = $("[type=password]").val()
$.post("http://127.0.0.1/zhuce", $("form").serialize(), function (data) {
console.log(data);
})
})
</script>