📜  使用 Node.js 和 MongoDB 的注册表单(1)

📅  最后修改于: 2023-12-03 14:49:43.580000             🧑  作者: Mango

使用 Node.js 和 MongoDB 的注册表单

在网站开发过程中,注册表单是必不可少的一部分,它允许用户创建账号并使用网站的功能。在本文中,我们将使用 Node.js 和 MongoDB 创建一个基本的注册表单。

前置条件

在开始之前,您应该已经安装了 Node.js 和 MongoDB。

第一步:创建一个基本的 Express 应用程序

首先,我们需要创建一个基本的 Express 应用程序。我们将使用指令行在本地文件夹中创建一个全新的 Express 应用程序。

  1. 首先,打开命令行并进入您想要创建应用程序的文件夹。例如:

    cd my-app
    
  2. 接下来,使用 npx 创建一个名为“my-app”的 Express 应用程序。执行以下命令:

    npx express-generator my-app
    
  3. 进入新创建的应用程序文件夹:

    cd my-app
    
  4. 现在我们可以安装依赖,使用以下命令安装:

    npm install
    
  5. 使用以下命令启动应用程序:

    npm start
    
  6. 现在,您可以在浏览器中打开 http://localhost:3000/,输入 localhost:3000 并按 Enter 键。您应该会看到一个欢迎页面,Express 应用程序正在运行。

第二步:创建注册表单

现在,我们将创建注册表单。在这个例子中,我们将请求用户输入他们的用户名和密码。

  1. 打开 views 文件夹,创建一个名为“register.ejs”的文件。在这个文件中,我们将创建表格并请求输入用户名和密码。以下是基本的 HTML 代码:

    <h1>注册</h1>
    <form action="/register" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username" required>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required>
        <button type="submit">注册</button>
    </form>
    

    注意,表单的“action”属性是“/register”。

  2. 接下来,我们需要在 app.js 中编写路由逻辑。打开 app.js 并在文件的底部添加以下代码:

    app.post('/register', (req, res) => {
        // request handling code
    });
    
  3. 然后,我们需要将用户名和密码存储到 MongoDB 数据库中。为此,我们将使用 MongoDB 驱动程序。打开终端并输入以下命令安装 mongodb 驱动程序:

    npm install mongodb
    
  4. 接下来,在 app.js 中添加以下代码:

    const MongoClient = require('mongodb').MongoClient;
    const url = 'mongodb://localhost:27017';
    const dbName = 'myapp';
    
    app.post('/register', (req, res) => {
        MongoClient.connect(url, { useNewUrlParser: true }, (err, client) => {
            if (err) throw err;
    
            const db = client.db(dbName);
    
            const collection = db.collection('users');
    
            const user = {
                username: req.body.username,
                password: req.body.password
            };
    
            collection.insertOne(user, (err, result) => {
                if (err) throw err;
    
                console.log(result.ops);
    
                res.redirect('/login');
            });
        });
    });
    

    该代码连接到 MongoDB 数据库并将输入的用户名和密码存储到名为“users”的集合中。在成功插入后,我们将用户重定向到登录页面。

  5. 最后,我们需要修改 app.js,以便它可以处理 POST 请求。在顶部添加以下代码:

    const bodyParser = require('body-parser');
    app.use(bodyParser.urlencoded({ extended: true }));
    

    注意,我们使用了 bodyParser 中间件。

这就是基本的注册表单完成了。现在,您可以使用 http://localhost:3000/register 访问表单并注册一个新用户。您可以在命令行中使用以下命令查看 MongoDB 数据库中存储的用户:

mongo
use myapp
db.users.find().pretty()

您可以在 MongoDB 数据库中看到已成功插入注册表单的输入。完成!

结论

在本文中,我们已经使用 Node.js 和 MongoDB 创建了一个基本的注册表单。您可以下载并运行本地器具,也可以将代码部署到云服务器上。在实际开发中,您还可以增加更多功能,例如密码校验、会话管理和电子邮件验证。祝您创建出完美的注册表单!