node搭建后台实现账户登录

1.创建项目结构

在这里插入图片描述

 data,public,views目录自己手动创建
 从crud打开terminal创建package.json,package-lock.json
 步骤如下

在terminal中依次输入以下命令

npm init -y
npm i express art-template express-art-template

完成后如图即可

2.创建前端登录页面

在views文件夹下创建login.html,代码如下

	<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
//使用get容易造成信息泄露,这在实际中是不允许的
    <label>
        <input type="text" name="account">
    </label>
    <br>
    <label>
        <input type="password" name="password">
    </label>
    <br>
    <label>
        <input type="submit" value="登录">
    </label>
</form>

</body>
</html>

到此,用户的操作页面已经完成

3.创建users.json文件模拟数据库

在data文件夹下创建users.json文件,具体代码如下

到此,我们的用户数据已经创建完成

[
  {
    "id": 1,
    "name":"小明",
    "age": 18,
    "gender": 1,
    "hobbies": ["吃饭","睡觉","打豆豆"],
    "account": 123456,
    "password": 123456
  },
  {
    "id": 2,
    "name":"小红",
    "age":21,
    "gender":0,
    "hobbies": ["刷手机","学习"],
    "account": 654321,
    "password": 654321
  }
]

4.创建后台接收,判断,反馈逻辑

在crud文件夹下创建app.js具体代码如下

const express=require('express')
const fs=require('fs')

const app=express()

//引入express-art-template,以解析HTML文件
app.engine('html',require('express-art-template'))

//配置body-parser,以解析前端post给后端的信息
app.use(express.urlencoded({extended: false}))
app.use(express.json())

//打开登录界面
app.get('/login',(req,res)=>{
    res.render('login.html')
})
//解析登录界面
//从前端获取到信息,首先要对获取到的信息进行判断,该怎样判断呢?首先刚刚获取到的信息是以buffer的形式,那么我们通过JSON语言将信息预处理
//成为可执行的数组,(数据成为数组的形式后方便后续直接调用数组中的元素),最后进行判断
app.post('/login',(req,res)=>{
    console.log(req.body)//前端给后端的登录信息(账号和密码)
    fs.readFile('data/users.json',(err,data)=>{
        //读取users.json内的元素
        if (err) throw err   //有错误就抛出
        const users=JSON.parse(data) //将数据JSON解析成数组,即可操作的形式
        const user=users.find(value => value.account==req.body.account)
        if (user&&user.password==req.body.password) res.send('登陆成功')
        else res.send('登陆失败')
    })
})

app.listen(3000,()=>console.log('app is running at port 3000...'))
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹蓝锐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值