3.开发node项目,一般使用express框架

版权声明:所有原创文章未经本人同意不得随意转载,谢谢 https://blog.csdn.net/tangcc110/article/details/82971206

"开课吧"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",
                        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方法提交请求。

猜你喜欢

转载自blog.csdn.net/tangcc110/article/details/82971206