使用express框架实现登录和注册功能 get : login -> 渲染登录表单页面 get : register -> 渲染注册表单页面 get : dologin -> 接收表单传递过来的用户名和密码 判断是否登录成功 get : doregister -> 接收表单传递过来的用户名和密码 判断persons.json中有无此用户,如果有返回 已注册。如果没有则注册成功,
时间: 2023-06-14 17:06:16 浏览: 98
首先,需要安装express框架和body-parser中间件。在命令行中输入以下命令安装:
```
npm install express body-parser --save
```
然后,在项目根目录下创建一个`index.js`文件,并在文件中引入所需的模块:
```javascript
const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
const app = express();
// 使用body-parser中间件解析请求体
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// 渲染登录表单页面
app.get('/login', (req, res) => {
res.send(`
<form action="/dologin" method="post">
<input type="text" name="username" placeholder="用户名">
<input type="password" name="password" placeholder="密码">
<button type="submit">登录</button>
</form>
`);
});
// 渲染注册表单页面
app.get('/register', (req, res) => {
res.send(`
<form action="/doregister" method="post">
<input type="text" name="username" placeholder="用户名">
<input type="password" name="password" placeholder="密码">
<button type="submit">注册</button>
</form>
`);
});
// 登录
app.post('/dologin', (req, res) => {
const { username, password } = req.body;
// 读取persons.json文件
const persons = JSON.parse(fs.readFileSync('persons.json'));
// 判断用户名和密码是否正确
const person = persons.find(p => p.username === username && p.password === password);
if (person) {
res.send('登录成功');
} else {
res.send('用户名或密码错误');
}
});
// 注册
app.post('/doregister', (req, res) => {
const { username, password } = req.body;
// 读取persons.json文件
const persons = JSON.parse(fs.readFileSync('persons.json'));
// 判断是否已注册
const person = persons.find(p => p.username === username);
if (person) {
res.send('已注册');
} else {
// 将用户添加到persons.json文件中
persons.push({ username, password });
fs.writeFileSync('persons.json', JSON.stringify(persons));
res.send('注册成功');
}
});
app.listen(3000, () => {
console.log('App is running on port 3000');
});
```
在以上代码中,我们创建了一个express实例,并使用body-parser中间件解析请求体。然后,我们定义了四个路由:
1. `/login`:渲染登录表单页面;
2. `/register`:渲染注册表单页面;
3. `/dologin`:接收表单传递过来的用户名和密码,判断是否登录成功;
4. `/doregister`:接收表单传递过来的用户名和密码,判断persons.json中有无此用户,如果有返回已注册。如果没有则注册成功。
其中,`persons.json`文件存储了已注册的用户信息,初始内容如下:
```json
[
{
"username": "admin",
"password": "123456"
}
]
```
最后,我们监听3000端口,并在控制台输出运行信息。在命令行中输入以下命令启动应用:
```
node index.js
```
然后,在浏览器中访问`http://localhost:3000/login`或`http://localhost:3000/register`即可看到相应的页面。
阅读全文