JavaScript 实现登录注册功能主要涉及前端页面的交互和与后端服务器的数据交互。以下是一个基本的实现思路和相关概念:
创建一个简单的登录注册页面,包含用户名、密码输入框和提交按钮。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login and Register</title>
<style>
/* 简单样式 */
body { font-family: Arial, sans-serif; }
.form-container { width: 300px; margin: 0 auto; }
input[type="text"], input[type="password"] { width: 100%; padding: 10px; margin: 10px 0; }
button { width: 100%; padding: 10px; background-color: #007BFF; color: white; border: none; cursor: pointer; }
</style>
</head>
<body>
<div class="form-container">
<h2>Login</h2>
<form id="loginForm">
<input type="text" id="loginUsername" placeholder="Username" required>
<input type="password" id="loginPassword" placeholder="Password" required>
<button type="submit">Login</button>
</form>
<h2>Register</h2>
<form id="registerForm">
<input type="text" id="registerUsername" placeholder="Username" required>
<input type="password" id="registerPassword" placeholder="Password" required>
<button type="submit">Register</button>
</form>
</div>
<script src="app.js"></script>
</body>
</html>使用 JavaScript 捕获表单提交事件,并通过 Fetch API 发送数据到后端。
document.getElementById('loginForm').addEventListener('submit', function(event) {
event.preventDefault();
const username = document.getElementById('loginUsername').value;
const password = document.getElementById('loginPassword').value;
fetch('/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ username, password })
})
.then(response => response.json())
.then(data => {
if (data.success) {
alert('Login successful!');
} else {
alert('Login failed: ' + data.message);
}
})
.catch(error => console.error('Error:', error));
});
document.getElementById('registerForm').addEventListener('submit', function(event) {
event.preventDefault();
const username = document.getElementById('registerUsername').value;
const password = document.getElementById('registerPassword').value;
fetch('/register', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ username, password })
})
.then(response => response.json())
.then(data => {
if (data.success) {
alert('Registration successful!');
} else {
alert('Registration failed: ' + data.message);
}
})
.catch(error => console.error('Error:', error));
});假设使用 Node.js 和 Express 来处理后端逻辑。
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(bodyParser.json());
let users = []; // 模拟数据库
app.post('/register', (req, res) => {
const { username, password } = req.body;
if (users.find(user => user.username === username)) {
return res.json({ success: false, message: 'Username already exists' });
}
users.push({ username, password });
res.json({ success: true });
});
app.post('/login', (req, res) => {
const { username, password } = req.body;
const user = users.find(user => user.username === username && user.password === password);
if (user) {
res.json({ success: true });
} else {
res.json({ success: false, message: 'Invalid credentials' });
}
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});通过以上步骤和注意事项,可以实现一个基本的登录注册功能。根据实际需求,还可以进一步优化和扩展功能。
没有搜到相关的沙龙