📜  node js登录和注册 - Javascript(1)

📅  最后修改于: 2023-12-03 15:03:11.926000             🧑  作者: Mango

使用 Node.js 实现登录和注册功能

本文将介绍如何使用 Node.js 实现简单的登录和注册功能。我们将使用 Express 框架和 MongoDB 数据库。

准备工作

在开始之前,您需要安装以下工具:

您还需要在本地创建一个新项目的目录,并将其用作工作空间。

初始化项目

在项目目录中打开终端并执行以下命令来初始化项目:

npm init -y

这将创建一个 package.json 文件,其中包含项目的基本信息和依赖项。

接下来,我们将安装所需的依赖项,包括 expressmongoosebody-parser 等。执行以下命令:

npm install express mongoose body-parser
创建服务器

在项目目录中,创建一个名为 app.js 的文件。在该文件中,首先导入所需的模块:

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

接着,我们需要连接 MongoDB 数据库。您可以使用以下代码连接到本地 MongoDB 数据库:

mongoose.connect('mongodb://localhost/myapp', { useNewUrlParser: true });

现在我们需要定义模型以表示用户。在 models/user.js 中,定义一个名为 User 的模型:

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  email: {
    type: String,
    required: true,
    unique: true
  },
  password: {
    type: String,
    required: true
  }
});

const User = mongoose.model('User', userSchema);

module.exports = User;

接下来,在 app.js 文件中导入 User 模型:

const User = require('./models/user');

现在我们需要注册用户的路由。为此,先实例化 express 应用程序:

const app = express();

接着,定义路由:

app.post('/register', (req, res) => {
  const user = new User({
    email: req.body.email,
    password: req.body.password
  });

  user.save((err, result) => {
    if (err) {
      console.error(err);
      res.status(500).send('Error registering new user please try again.');
    } else {
      res.status(200).send('Welcome to the club!');
    }
  });
});

这将绑定到 /registerPOST 请求,并创建新用户并将其保存到数据库中。

实现登录

为了实现登录功能,我们需要创建一个新路由 /login

app.post('/login', (req, res) => {
  User.findOne({ email: req.body.email }, (err, user) => {
    if (err) {
      console.error(err);
      res.status(500).send('Error logging in please try again.');
    } else if (!user) {
      res.status(401).send('User does not exist.');
    } else {
      if (user.password === req.body.password) {
        res.status(200).send('Welcome back!');
      } else {
        res.status(401).send('Incorrect password.');
      }
    }
  });
});

这个路由将找到具有给定 email 的用户,并比较其密码是否与提供的密码匹配。

启动服务器

最后,添加以下代码来启动服务器:

const port = 3000;

app.listen(port, () => {
  console.log(`Server running on port: ${port}`);
});

现在您可以在终端中启动服务器:

node app.js
总结

在本文中,我们介绍了如何使用 Node.js、Express、MongoDB 和 Mongoose 来实现登录和注册功能。这是一个简单的示例,您可以在此基础上构建更强大和复杂的应用程序。