Express
概念:官方给出的概念:Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。
通俗的理解:Express 的作用和 Node.js 内置的 http 模块类似,是专门用来创建 Web 服务器的。
Express 的本质:就是一个 npm 上的第三方包,提供了快速创建 、Web 服务器的便捷方法。
实例代码:
建一个day01.js文件
<script>
const express = require("express");
const cors = require('cors');
const app = express();
app.use(cors());
app.use("static",express.static(path.join(__dirname,"xjitem-moment")))
app.get("url",(req,res)=>{})
app.get("/",(req,res)=>{
res.send("get请求访问首页接口成功")
console.log(req.query);
let data = req.query;
if(data.userName=="admain"&&data.pass==1234){
}
})
app.get("/index/:abc",(req,res)=>{
console.log(res.params);
res.send("get请求访问/index接口成功")
})
app.get("/index",(req,res)=>{
res.send("get请求访问/index接口成功")
})
// app.post("url",(req,res)=>{})
app.post("/index",(req,res)=>{
res.send("post请求访问/index接口成功")
})
app.listen(81,()=>{
console.log("express服务启动成功");
})
</script>
同目录再建一个day01.html文件
<body>
<!-- 请输入账号:<input type="text" class="zh">;
请输入密码:<input type="text" class="mm">;
<button class="btn">登录</button> -->
</body>
<script>
js使用ajax调用get接口/index
let http = new XMLHttpRequest();
let base = "http://127.0.0.1:81/index"
"http://127.0.0.1:81/index"
http.open("get",base);
http.send();
http.onreadystatechange=function(){
console.log(http.responseText);
}
---------------------
http.open("post",base);
http.send();
http.onreadystatechange=function(){
console.log(http.responseText);
}
// -------------------
let base = "http://127.0.0.1:81/index"
$.get(base,(user)=>{
console.log(user);
})
$.post(base,(user)=>{
console.log(user);
})
$(".btn").click(function(){
let user = $(".zh").val();
let pass = $(".mm").val();
if(!user&&!pass){
return;
console.log("请输入好吗!");
}
})
$.ajax({
type:"get",
url:`${base}/index`,
data:{},
success:(req)=>{
console.log(req);
}
})
$.ajax({
type:"get",
url:`${base}/index/99`,
data:{},
success:(req)=>{
console.log(req);
}
})
//用多种方法
</script>
解决跨域问题使用cors
1.npm i cors
2.导入require
3.使用,在app创建服务后使用
栗子 一个
1.请使用express创建服务,端口号为81,需解决跨域问题,需托管静态文件名称为es6,创建一个get接口,接口名称为/login,接口中需要验证账号为admin密码123456,验证成功返回登录成功页面路径http://127.0.0:81/es6/day01.html,否则登录失败访问http://127.0.0:81/es6/day02.html,使用jq中ajax调取服务,需要验证输入不能为空
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
请输入账号:<input type="text" name="" id="" class="zh"><br>
请输入密码:<input type="text" name="" id="" class="mm"><br>
<button class="btn">登录</button>
</body>
<script src="../es6/jquery-1.8.3.js"></script>
<script>
let base = "http://127.0.0.1:81";
$(".btn").click(function(){
let user = $(".zh").val();
let pass = $(".mm").val();
if(!user && !pass){
console.log("请输入账号密码");
return;
}
$.ajax({
type:"get",
url:`${base}/login`,
data:{
userName:user,
passWord:pass
},
success:(req)=>{
console.log(req);
location.href = req;
}
})
})
</script>
<script>
const express = require("express");
const cors = require("cors");
const app = express();
app.use("/es6",express.static("es6"))
app.use(cors());
app.get("/login",(req,res)=>{
console.log(req.query);
let data = req.query;
if(data.userName=="admin"&&data.passWord=="123456"){
res.send("http://127.0.0.1:81/es6/day01.html
");
}else{
res.send("http://127.0.0.1:81/es6/day02.html
");
}
})
app.listen(81,()=>{
console.log("express服务启动成功");
})
</script>
req.query 对象,可以访问到客户端通过查询URL 中携带的参数
req.params 对象,可以访问到 URL 中,通过 : 匹配到的动态参数
express.static()托管静态资源
注:使用静态资源托管尽量添加名称
中间件next();
<script>
const express = require("express");
const router = express.Router();
// 局部中间件next();
const mv = function(req,res,next){
console.log("调用第一个中间件");
next();
}
const mvs = function(req,res,next){
console.log("调用第一个中间件");
next();
}
router.get("/",(req,res)=>{
res.send("get调取请求成功!")
})
module.exports = router;
</script>
<script>
const express = require("express");
const cors = require("cors");
const router = require("./day11-1.js");
const app = express();
// 全局中间件
const mvss = function(req,res,next){
console.log("全局中间件!");
next();
}
app.use(mvss);
app.use(router);
app.listen(81,()=>{
console.log("服务启动成功!");
})
</script>
如有错误,还请指点,谢谢