美文网首页Node.js
Node.js进阶之【8】 : express模块获取get数据

Node.js进阶之【8】 : express模块获取get数据

作者: 岚平果 | 来源:发表于2020-03-20 17:05 被阅读0次

一、简介

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助我们创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。

二、使用 express模块

1)下载 【express】模块

npm install express
image.png

2)新建一个服务器【servers.js】文件

// 引用 express 模块
const express = require('express');
// 建立服务器 server
let server = express();
// 用户信息临时储存在 useData 里
let userData = {'xxl': '528520'}
// server.get('/地址', (req, res) => {}) 是接收前台通过【get】发过过来的参数
// server.post('/地址', (req, res) => {}) 是接收前台通过【post】发过过来的参数
// server.use('/地址',req,res同之前http里的一样)
server.use('/login', (req, res) => {
// use 里有一个query属性,可以直接得到前台发过来的参数,通过req.query获取到对象数据,类似 {name:12, age: 5}
    let objUrl = req.query,
        userName = objUrl.name,
        userPass = objUrl.pass;
    console.log(req)
    if(userData[userName] === undefined) {
        res.send({"ok": false, "msg": "账号不存在"});
    } else if(userData[userName] !== userPass) {
        res.send({"ok": false, "msg": '密码输入错误'});
    } else {
        res.send({"ok": true, "msg": "登录成功"});
    }
    // 同理请求结束都需要 res.end()
    res.end()
})
// express.static(文件访问的根路径地址)可以直接获取到文件的内容,和express-static中间介一样的功能,不过现在升级成express.static直接可以访问到。
server.use(express.static('./www'))
// 监听端口
server.listen(8080)
  1. 引入【ajax.js】,创建客户端页面
<!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>Document</title>
    <script src="ajax.js"></script>
    <script type="text/javascript">
        window.onload = () => {
            let nameNode = document.getElementById('name'),
                passNode = document.getElementById('pass'),
                loginNode = document.getElementById('loginBtn');
            loginNode.onclick = ((e) => {
                ajax({
                    type: 'GET',
                    url: '/login',
                    data: {
                        name: nameNode.value,
                        pass: passNode.value
                    },
                    success: (res) => {
                        let result = JSON.parse(res);
                        if(res.ok) {
                            alert("登录成功");
                        } else {
                            alert(`登录失败:${result.msg}`)
                        }
                    },
                    error: (res) => {
                        alert('通信错误')
                    }
                })
            })
        }
    </script>
</head>
<body>
    用户名:<input type="text" id="name" /> </br>
    密码:<input type="password" id="pass" /> </br>
    <input type="button" value="登录" id="loginBtn">
</body>
</html>
  1. 打开服务器命令【node server.js】,运行一下
    image.png
    5) 浏览器打开
    image.png
    备注:
    1、express.use('/路径',(req, res) => {})能同时接收到客户端通过【get】或 【post】传过来的参数。
    2、req.query可以直接获取到客户端通过【get】传过来的对象参数,转化成类似{name: 12, age:5}这种对象数据类型,方便我们直接获取各个数据。
    3、服务器在分析接口的时候,需要获取对应的文件内容,这时候【 server.use(express.static('./www')) 】不能少。切记!

相关文章

网友评论

    本文标题:Node.js进阶之【8】 : express模块获取get数据

    本文链接:https://www.haomeiwen.com/subject/yxzjyhtx.html