const express = require('express'); const app = express(); const sql = require('mssql'); // SQL Server 数据库配置 const config = { server: '192.168.10.223', user: 'sa', password: 'Servo01', database: 'demo', options: { encrypt: true // 如果需要 SSL 连接,设置为 true } }; app.use(express.json()); app.post('/register', function(req, res) { const { name, email, password } = req.body; // 连接 SQL Server 数据库 sql.connect(config, function(err) { if (err) { console.log(err); res.status(500).send('数据库连接失败'); return; } // 执行插入操作 const query = 'INSERT INTO username (name, email, password) VALUES (@name, @email, @password)'; const request = new sql.Request(); request.input('name', sql.NVarChar, name); request.input('email', sql.NVarChar, email); request.input('password', sql.NVarChar, password); request.query(query, function(err, result) { if (err) { console.log(err); res.status(500).send('注册失败'); return; } res.send('注册成功'); }); }); }); module.exports = new config() //开启服务器监听 app.listen(4000, () => { console.log('#localhost:4000'); })<!DOCTYPE html> <html> <head> <title>注册页面</title> <link rel="stylesheet" type="text/css" href="../zhuce/zhuce1.css"> <script src="../zhuce1.js"></script> </head> <body> <h2>用户注册</h2> <form method="post" action="/" id="registration-form"> <label for="username">用户名:</label> <input type="text" id="name" name="name" placeholder="请输入用户名" pattern="^[a-zA-Z0-9_]{3,20}$" required> <label for="email">邮箱:</label> <input type="email" id="email" name="email" placeholder="请输入邮箱地址" required> <label for="password">密码:</label> <input type="password" id="password" name="password" placeholder="请输入密码" pattern="^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$" required> <input type="submit" value="注册"> </form> </body> </html> <script> document.addEventListener('DOMContentLoaded', function () { const form = document.getElementById('registration-form'); form.addEventListener('submit', function (event) { event.preventDefault(); // 阻止表单提交 const name = document.getElementById('name').value; const password = document.getElementById('password').value; const email = document.getElementById('email').value; console.log('注册信息:'); console.log('用户名:', name); console.log('密码:', password); console.log('邮箱:', email); }); }); </script>
时间: 2024-04-15 14:27:11 浏览: 159
这段代码看起来是一个使用 Express 和 SQL Server 的注册功能的示例。让我来解释一下代码的逻辑:
1. 首先,通过 `require` 语句引入了 `express` 和 `mssql` 模块,并创建了一个 Express 应用程序实例。
```javascript
const express = require('express');
const app = express();
const sql = require('mssql');
```
2. 定义了 SQL Server 数据库的配置信息,包括服务器地址、用户名、密码、数据库名称等。
```javascript
const config = {
server: '192.168.10.223',
user: 'sa',
password: 'Servo01',
database: 'demo',
options: {
encrypt: true // 如果需要 SSL 连接,设置为 true
}
};
```
3. 使用 `app.use()` 方法注册了一个中间件,用于解析请求的 JSON 数据。
```javascript
app.use(express.json());
```
4. 定义了一个 `POST` 请求处理程序,用于处理用户注册请求。
```javascript
app.post('/register', function(req, res) {
// 获取请求体中的用户名、邮箱和密码
const { name, email, password } = req.body;
// 连接 SQL Server 数据库
sql.connect(config, function(err) {
if (err) {
console.log(err);
res.status(500).send('数据库连接失败');
return;
}
// 执行插入操作
const query = 'INSERT INTO username (name, email, password) VALUES (@name, @email, @password)';
const request = new sql.Request();
request.input('name', sql.NVarChar, name);
request.input('email', sql.NVarChar, email);
request.input('password', sql.NVarChar, password);
request.query(query, function(err, result) {
if (err) {
console.log(err);
res.status(500).send('注册失败');
return;
}
res.send('注册成功');
});
});
});
```
这段代码处理了 `/register` 路径的 `POST` 请求。它首先从请求体中获取用户名、邮箱和密码,然后使用 `mssql` 模块连接数据库,并执行插入操作将用户信息插入到数据库中。
5. 最后,使用 `app.listen()` 方法启动 Express 服务器监听指定的端口。
```javascript
app.listen(4000, () => { console.log('#localhost:4000'); })
```
这样,当你访问 `http://localhost:4000` 并提交注册表单时,会触发 `/register` 路径的 `POST` 请求处理程序。
此外,你还提供了一个 HTML 页面,该页面包含一个注册表单,并使用 JavaScript 监听表单的提交事件,并输出注册信息到控制台。
请注意,最后的HTML和JavaScript代码似乎不是在服务器端运行的代码,而是应该放在客户端(浏览器)中执行的前端代码。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)