nodejs---express框架模拟用户登录

版权声明:本文为博主原创文章,喜欢的话,可以通知我后进行转载哦! https://blog.csdn.net/maidu_xbd/article/details/86632618

 

一、Express简介

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。express保留了原生的功能,添加了一些方法(比如:send),增强原有的功能。

1.express安装

npm install express

执行以上命令会将 express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下存放了不同的模块。

2.express使用

var server=express();-----创建服务

server.listen(8080);----监听

server.use('地址', function (req, res){});----处理请求

示例如下:

const express = require('express');

var server = express();
server.use('/1.html', function (req, res) {  //请求路径为  http://localhost:8080/1.html
    //res.write('aaa');  //向前台写入aaa
    //res.send('aaa');  //向前台写入aaa
    res.send({ a: 12, b: 5 });   //向前台写入json数据
    res.end();
})

server.listen(8080); 

打开浏览器,访问http://localhost:8080/1.html,显示 {"a":12,"b":5}

3.express的处理get和post请求

分别有以下3种方法

(1)server.get('/', function (req, res){});----处理get请求

(2)server.post('/', function (req, res){});----处理post请求

(3)server.use('/', function (req, res){});-----处理get/post请求

处理get请求----req.query

const express=require('express');

var server=express();
server.listen(8080);

//GET、POST
server.use('/', function (req, res){
  console.log(req.query); //GET
});
   

处理post请求---需要"body-parser"

const express=require('express');
const bodyParser=require('body-parser');

var server=express();
server.listen(8080);

server.use(bodyParser.urlencoded({
  extended: false,                 //扩展模式
  limit:    2*1024*1024           //限制-2M
}));

server.use('/', function (req, res){
  console.log(req.body); //POST
});

4.express中间件

  express可以设置中间件来响应 HTTP 请求。

  express 提供了内置的中间件 express-static 来设置静态文件如:图片, CSS, JavaScript 等。

  npm install express-static------ 下载express-static模块,

示例如下:

const express = require('express');
const expressStatic = require('express-static');

var server = express();
server.listen(8080);
server.use(expressStatic('./www')); //读取静态文件

5.链式操作

next

const express = require('express');

var server = express();
server.listen(8080);

//链式操作
server.use('/', function (req, res, next) {
    console.log('aaa');
    next();   //下一个步骤
});
server.use('/', function (req, res) {
    console.log('bbb');
});

二、用户登录功能实现

login.html完整代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>登录</title>
    <script src="ajax.js"></script>
    <script>
        window.onload = function () {
            var oUser = document.getElementById('user');
            var oPass = document.getElementById('pass');
            var oBtn = document.getElementById('btn');

            oBtn.onclick = function () {
                ajax({
                    url: '/login',
                    data: { user: oUser.value, pass: oPass.value },
                    type: 'get',
                    success: function (str) {
                        var json = eval('(' + str + ')');
                        //alert(json.ok + json.msg);
                        if (json.ok) {
                            alert("登录成功");
                        } else {
                            alert("登录失败:" + json.msg);
                        }
                    },
                    error: function () {
                        alert("通信失败");
                    }

                })
            }


        }

    </script>

</head>

<body>
    用户:<input type="text" id="user"><br>
    密码:<input type="password" id="pass"><br>
    <input type="button" value="登录" id="btn">

</body>

</html>

server.js完整代码:

const express = require('express');
const expressStatic = require('express-static');

var server = express();
server.listen(8080);

//用户数据
var users = {
    'leimiao': '123456',
    'yintong': '654321',
    'buding': '333333'

};
server.get('/login', function (req, res) {
    var username = req.query['user'];
    var password = req.query['pass'];
    //console.log(req.query);

    if (users[username] == null) {
        res.send({ ok: false, msg: '此用户不存在' });
    } else {
        if (users[username] != password) {
            res.send({ ok: false, msg: '密码错误' });
        } else {
            res.send({ ok: true, msg: '登录成功' });
        }
    }

});


server.use(expressStatic('./www')); //读取静态文件

猜你喜欢

转载自blog.csdn.net/maidu_xbd/article/details/86632618