nodejs mysql 实现分页

代码如下

var express  =  require( 'express');
var router  = express. Router();
var settings  =  require( '../settings.js');
var mysql  =  require( 'mysql2');

router. get( '/'function( reqresnext) {
     var current_page  =  1//默认为1
     var num  =  9//一页条数
     if (req.query.page) {
        current_page  =  parseInt(req.query.page);
    }

     var last_page  = current_page  -  1;
     if (current_page  <=  1) {
        last_page  =  1;
    }
     var next_page  = current_page  +  1;
     var str  =  'SELECT left(paragraph,50) as paragraph,date,id FROM notice limit '  + num  +  '  offset '  + num  * (current_page  -  1);
     var conn  = mysql. createConnection(settings.db);

    conn. connect();
    conn. query(str,  function( errrowsfields) {
         if (err) {
            req. flash( 'error''数据查询有误');
        }
         if ( !err) {
             if ( !rows[ 0]) {
                req. flash( 'error''已到最后一页,请返回');
            }
            res. render( 'notice', {
                last_page: last_page,
                next_page: next_page,
                current_page: current_page,
                mes: rows,
                error: req. flash( 'error'). toString()
            });

        }
    });
    conn. end();
});

module. exports  = router;

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 可以使用Node.js模块mysql2来连接MySQL数据库,然后实现注册和登录功能。在注册时,可以向数据库插入用户信息;在登录时,可以查询数据库中的用户信息,以验证用户身份。具体实现方法请参考Node.js与MySQL的相关文档和教程。 ### 回答2: Node.js和MySQL是现在非常常用的技术,可以帮助我们构建Web应用程序并完成与数据库的交互。在这里,我会讲述如何用Node.js和MySQL实现注册和登录功能。 首先,让我们建立一个基本的Node.js服务器。通过使用Express框架,我们可以快速创建一个服务器,并且使用中间件完成路由、日志记录等功能。同时,我们需要使用MySQL来完成与数据库的交互。 下面是一个基本的服务器代码,实现了/user/register和/user/login两个路由功能。 ```javascript const express = require('express'); const mysql = require('mysql'); const bodyParser = require('body-parser'); const app = express(); const port = process.env.PORT || 3000; // 配置bodyParser,使得请求可以解析为JSON格式 app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); // 设置MySQL数据库的连接信息 const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'nodejs-mysql' }); // 注册功能 app.post('/user/register', (req, res) => { const { name, password } = req.body; connection.query(`SELECT * FROM users WHERE name = '${name}'`, (err, results) => { if (err) throw err; if (results.length > 0) { res.send('用户已存在'); } else { connection.query(`INSERT INTO users (name, password) VALUES ('${name}', '${password}')`, (err, results) => { if (err) throw err; res.send('用户注册成功'); }); } }); }); // 登录功能 app.post('/user/login', (req, res) => { const { name, password } = req.body; connection.query(`SELECT * FROM users WHERE name = '${name}' AND password = '${password}'`, (err, results) => { if (err) throw err; if (results.length > 0) { res.send('用户登录成功'); } else { res.send('用户名或密码错误'); } }); }); // 启动服务器 app.listen(port, () => { console.log(`服务器启动成功,端口号为${port}`); }); ``` 上面的代码中,我们使用了body-parser模块来解析请求的JSON格式数据,同时也配置了MySQL数据库的连接信息。在注册功能中,我们先查询数据库中是否已经存在该用户,如果不存在则插入到数据库中,否则返回错误信息。在登录功能中,我们查询数据库是否存在该用户名和密码,如果存在则登录成功,返回用户信息,否则返回错误信息。 在实现注册和登录功能之前,我们需要在MySQL中创建一个名为nodejs-mysql的数据库和一个名为users的数据表。可以使用以下命令创建: ``` CREATE DATABASE nodejs-mysql; USE nodejs-mysql; CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL, password varchar(100) NOT NULL, PRIMARY KEY (id) ); ``` 完成以上步骤后,我们可以使用curl或Postman等工具进行测试。在注册功能中,我们可以使用以下命令进行测试: ``` curl --location --request POST 'http://localhost:3000/user/register' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "admin", "password": "password" }' ``` 在登录功能中,我们可以使用以下命令进行测试: ``` curl --location --request POST 'http://localhost:3000/user/login' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "admin", "password": "password" }' ``` 以上就是用Node.js和MySQL实现注册和登录功能的基本步骤。当然,我们还可以进行更多的功能拓展,例如使用bcrypt.js模块进行密码加密,使用jsonwebtoken模块进行用户认证等,希望能对大家有所帮助。 ### 回答3: Node.js 是一个非常流行的后端 JavaScript 运行时,它可以帮助我们快速构建高性能的 Web 应用程序。而 MySQL 是一个开源的关系型数据库管理系统,它是 Web 开发中使用最广泛的数据库之一。Node.js 和 MySQL 都是非常成熟和稳定的技术,因此它们的集成是非常简单的。 实现注册和登录功能是 Web 应用程序中的基础功能,下面我们来介绍一下如何使用 Node.js 和 MySQL 实现。 首先,使用 NPM 安装必要的依赖库。在命令行中输入以下命令: ```npm i express mysql body-parser express-session``` 上述依赖库分别是: - Express:Web 开发框架 - mysqlMySQL 的 Node.js 驱动程序 - body-parser:解析 HTTP 请求消息体的中间件 - express-session:会话管理中间件 接下来,我们需要连接到 MySQL 数据库。在代码中创建一个 MySQL 连接实例,代码如下: ``` const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'testdb' }); connection.connect(function(err) { if (err) { console.error('Error connecting to MySQL: ' + err.stack); return; } console.log('Connected to MySQL as id ' + connection.threadId); }); ``` 在上述代码中,我们创建了一个 MySQL 连接实例,并定义了连接参数。然后使用 connect() 方法连接到 MySQL 数据库,并打印连接的 threadId。 接下来,我们需要创建一个用户表来存储用户信息。在 MySQL 数据库中创建一个名为 users 的表,代码如下: ``` CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(100) NOT NULL, PRIMARY KEY (id) ); ``` 现在,我们已经创建了用户表,接下来让我们实现用户注册和登录功能。 用户注册功能 用户注册的流程大致如下: - 接收用户提交的注册信息(包括用户名和密码) - 检查用户名是否已经被注册过 - 如果用户名没有被注册,将用户信息存储到数据库中 在代码中,我们可以使用一个简单的路由来处理用户提交的注册信息,代码如下: ``` const express = require('express'); const app = express(); app.use(express.urlencoded({ extended: true })); app.use(express.json()); app.post('/signup', (req, res) => { const { username, password } = req.body; connection.query( 'SELECT id FROM users WHERE username = ?', [username], (err, rows) => { if (err) throw err; if (rows.length > 0) { res.json({ message: 'This username is already taken.' }); } else { connection.query( 'INSERT INTO users (username, password) VALUES (?, ?)', [username, password], (err, result) => { if (err) throw err; res.json({ message: 'Registration successful.' }); } ); } } ); }); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 在上述代码中,我们定义了一个 POST 请求路由 /signup,用于接收用户提交的注册信息。首先从请求消息体中解析出用户名和密码,然后查询 users 表,看看用户名是否已经存在。如果用户名已经存在,则返回一个错误信息。否则,将用户名和密码插入到数据库中。 用户登录功能 用户登录的流程大致如下: - 接收用户提交的登录信息(包括用户名和密码) - 验证用户名和密码是否匹配 - 如果用户名和密码匹配,向客户端发送登录状态 在代码中,我们可以使用一个简单的路由来处理用户提交的登录信息,代码如下: ``` app.post('/login', (req, res) => { const { username, password } = req.body; connection.query( 'SELECT id FROM users WHERE username = ? AND password = ?', [username, password], (err, rows) => { if (err) throw err; if (rows.length > 0) { req.session.user = { username }; res.json({ message: 'Login successful.' }); } else { res.json({ message: 'Invalid username or password.' }); } } ); }); ``` 在上述代码中,我们定义了一个 POST 请求路由 /login,用于接收用户提交的登录信息。首先从请求消息体中解析出用户名和密码,然后查询 users 表,判断用户名和密码是否匹配。如果用户名和密码匹配,则将用户信息存储在会话对象中。否则,返回一个错误信息。 至此,我们已经实现了 Node.js 和 MySQL 的注册登录功能。要注意的是,上述代码仅供参考,实际应用中需做更多的安全性和优化措施,例如密码加密、SQL 注入攻击防范等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值