21xrx.com
2024-09-19 09:34:36 Thursday
登录
文章检索 我的文章 写文章
Node.js 登录注册页面
2023-07-06 08:24:34 深夜i     --     --
Node js 登录 注册 页面 用户认证(可选)

Node.js是一种基于JavaScript运行时环境的开源、跨平台的后端JavaScript解释器。它具有高效处理大量并发连接的能力,而且代码运行速度快、可扩展性强,是当今前端开发中使用较为广泛的技术之一。而对于具有一定复杂度的项目来说,登录注册系统是必不可少的一部分。

在Node.js中,开发者们可以使用Express Web框架来创建一个登录注册页面。Express是一个简洁而灵活的Node.js Web应用程序框架,由官方推出,具有速度快、易用性强、万众期待、自由度高等优点。

下面是一个简单的Node.js登录注册页面实现过程的步骤:

1.首先需要创建一个Express应用程序,可以使用以下命令:


$ npm install -g express-generator

$ express myapp

2.创建数据库表格


CREATE TABLE users (

 id SERIAL PRIMARY KEY,

 name VARCHAR(50) NOT NULL,

 email VARCHAR(100) NOT NULL UNIQUE,

 password VARCHAR(150) NOT NULL

);

3.创建注册页面

创建注册页面需要先在views目录下创建一个register.ejs文件,然后在该文件中添加表单,用于用户输入信息:


<form method="post" action="/register">

 <div>

  <label for="name">Username:</label>

  <input type="text" id="name" name="name" />

 </div>

 <div>

  <label for="email">Email:</label>

  <input type="email" id="email" name="email" />

 </div>

 <div>

  <label for="password">Password:</label>

  <input type="password" id="password" name="password" />

 </div>

 <button type="submit">Register</button>

</form>

在app.js中添加以下代码:

js

app.get('/register', (req, res) => {

 res.render('register');

});

4.创建登录页面

创建登录页面同样需要在views目录下创建一个login.ejs文件,然后在文件中添加表单,用于用户输入账户信息:


<form method="post" action="/login">

 <div>

  <label for="email">Email:</label>

  <input type="email" id="email" name="email" />

 </div>

 <div>

  <label for="password">Password:</label>

  <input type="password" id="password" name="password" />

 </div>

 <button type="submit">Login</button>

</form>

在app.js中添加以下代码:

js

app.get('/login', (req, res) => {

 res.render('login');

});

5.处理注册请求

对于注册请求,我们需要在app.js中添加以下代码:

js

app.post('/register', (req, res) => {

 const email = req.body;

 const query = `

  INSERT INTO users (name, email, password)

  VALUES ($1, $2, $3)

  RETURNING *;

 `;

 client.query(query, [name, email, password], (err, result) => {

  if (err) {

   console.error(err.stack);

   res.status(500).json({ error: 'Internal Server Error' });

  } else {

   res.status(201).json({ message: 'User created' });

  }

 });

});

上述代码首先是从请求中获取用户输入的注册信息,然后构建一条SQL查询语句,将用户输入的信息插入到数据库中。最后返回一个JSON响应。

6.处理登录请求

对于登录请求,我们需要再次在app.js中添加以下代码:

js

app.post('/login', (req, res) => {

 const email = req.body;

 const query = `

  SELECT * FROM users WHERE email = $1 AND password = $2

 `;

 client.query(query, [email, password], (err, result) => {

  if (err) {

   console.error(err.stack);

   res.status(500).json({ error: 'Internal Server Error' });

  } else if (result.rows.length !== 1) {

   res.status(401).json({ error: 'Invalid credentials' });

  } else {

   res.status(200).json({ message: 'Logged in' });

  }

 });

});

上述代码首先从请求中获取用户输入的登录信息,然后构建一条SQL查询语句,查询出与输入的账户信息匹配的记录。如果查询成功但没有匹配的记录,则返回一个“无效凭据”错误。否则成功登录。

总之,Node.js可以轻松地实现一个登录注册系统。此系统基于Express Web框架创建,并且使用PostgreSQL数据库存储用户信息。一旦掌握Node.js的基本知识,就可以更深入地了解和学习它的更多功能和应用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复