"开课吧"lesson9
express只是给nodejs增加了一些基本的功能,可以更好用其它模块来拓展如express-static。
1.目录结构
2.a.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>express</title>
</head>
<body>
<form action="http://localhost:8087/user" method="post">
<input type="text" name="username" id="u">
<input type="text" name="psw" id="psw" >
<input type="button" onclick="register()" value="register">
<input type="button" onclick="login()" value="login">
</form>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
const log = console.log;
let eUsename = document.getElementById("u");
let ePsw = document.getElementById("psw");
function register() {
$.ajax({
type:"post",
data:{"action":"register","username":eUsename.value,"psw":ePsw.value},
url:"/user",
//dataType:"json",// 不会返回json格式,所以删掉这句,否则不会进入success
success:function(data){
var json = eval("("+ data +")" );
log(data)
log(json.status,"---",json.msg)
},
error:function(err){
log("err=",err);
}
})
}
function login() {
$.ajax({
type:"get",
data:{"action":"login","username":eUsename.value,"psw":ePsw.value},
url:"/user",
success:function(data){
var json = eval("("+ data +")" );
log(data)
log(json.status,"---",json.msg)
},
error:function(err){
log("err=",err);
}
})
}
</script>
</body>
</html>
3.server.js
const express = require("express"); // 只是提供了基本的功能
const server = express();
const expressStatic = require("express-static"); // 处理静态文件
const log = console.log;
// server.use("/a.html", function (req, res) { // 可以接收get和post
// res.send("bbbb")
// res.end()
// })
// server.get("/a.html",function(req,res){ // 只能接收get请求
// res.send("get");
// res.end();
// })
// server.post("/a.html",function(req,res){// 只能接收post请求
// res.write("post");
// console.log("send a post")
// res.end();
// })
//接口设置 http://localhost:8087/user?action=register&username=tcc&psw=123
//接口设置 http://localhost:8087/user?action=login&username=tcc&psw=123
let users = {}; // 现在我们没有数据库,所以定义一个对象来存储用户的信息.
server.get("/user",function(req,res){
let action = req.query["action"] //注意一定是用get方法,req.query才正确的返回值.use post都不行
let uname = req.query["username"]
let psw = req.query["psw"]
if(action == "register"){
if(users[uname]){
res.send('{"status":false,msg:"已经注册"}')
}else{
users[uname] = psw;
res.send('{"status":false,msg:"注册成功"}')
}
}else if(action == "login"){
if(!users[uname]){
res.send('{"status":false,msg:"用户名不正确"}')
}else if(users[uname] == psw){
res.send('{"status":true,msg:"登录成功"}')
}else{
res.send('{"status":false,msg:"其它原因登录失败"}')
}
}else{
res.send("no register and login")
}
})
server.use(expressStatic("./www")); // 用了express-static 后, http://localhost:8087/a.html就可以直接进入a.html页面.
server.listen(8087)
Brief summary:
以上示例是express框架的简单使用,仅限于get方法提交请求,post提交的请求待续。