node.js+mysql实现用户登陆验证

       node.js搭服务器还是比较方便的,自己做服务器非常的轻便,快速,唯一不好就是异步式,数据库访问需要使用callback。

搞了很久,在express框架下,使用callback实现了用户登陆验证的功能。

代码如下:

var express = require('express');
var app = express();

var queryString = require('querystring');
var mysql = require('mysql');

app.get('/login', function(req, res) {
  var name = req.query.username;
  var pass = req.query.userpass;
  console.log(name);
  console.log(pass);
  //使用callback避免异步处理返回为空
  var message = getUserInfor(name, pass, function(json) {
    res.send(json);
  })

})

var server = app.listen(8081, function() {

  var host = server.address().address;
  var port = server.address().port;

  console.log("应用实例,访问地址为 http://%s:%s", host, port);

})


/**
 * [获取表中所有位置信息]
 * @return {[type]} [description]
 */
function getUserInfor(name, pass, callback) {
  var connection = mysql.createConnection({
    host: '192.168.1.108',
    user: 'test',
    password: 'test',
    database: 'test'
  });


  connection.connect();
  //根据名字查询数据库信息
  var sql = 'SELECT password FROM users WHERE name = "' + name + '"';

  connection.query(sql, function(err, result) {

    console.log('--------------------------result----------------------------');
    //转换json
    var message = JSON.stringify(result);
    message = JSON.parse(message);
    console.log(message);
    console.log(message[0].password);

    if (err) {
      callback('查询失败');
      console.log('查询失败');
    }
    if (message[0].password == pass) {
      callback('登陆成功');
    } else {
      callback('登陆失败');
    }
    console.log('------------------------------------------------------------\n\n');
  });

  connection.end();
}

访问服务地址:


这里提供一个使用 Node.js + Express + MySQL 实现博客系统的示例代码。需要注意的是,这只是一个简单的示例,实际应用中需要根据具体需求进行修改和完善。 app.js: ```javascript const express = require('express'); const bodyParser = require('body-parser'); const mysql = require('mysql'); const app = express(); const port = 3000; app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); // 创建数据库连接 const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'blog' }); // 连接数据库 connection.connect((err) => { if (err) { console.error('error connecting: ' + err.stack); return; } console.log('connected as id ' + connection.threadId); }); // 引入路由 const blogRouter = require('./routes/blog'); app.use('/api/blog', blogRouter(connection)); app.listen(port, () => { console.log(`App listening at http://localhost:${port}`) }); ``` routes/blog.js: ```javascript const express = require('express'); const router = express.Router(); module.exports = (connection) => { // 获取所有博客列表 router.get('/', (req, res) => { const sql = 'SELECT * FROM blog'; connection.query(sql, (err, results) => { if (err) throw err; res.send(results); }); }); // 获取指定博客 router.get('/:id', (req, res) => { const id = req.params.id; const sql = `SELECT * FROM blog WHERE id = ${id}`; connection.query(sql, (err, results) => { if (err) throw err; res.send(results[0]); }); }); // 新增博客 router.post('/', (req, res) => { const { title, content } = req.body; const sql = `INSERT INTO blog (title, content) VALUES ("${title}", "${content}")`; connection.query(sql, (err, results) => { if (err) throw err; res.send(`新增博客:${title}, ${content}`); }); }); // 修改指定博客 router.put('/:id', (req, res) => { const id = req.params.id; const { title, content } = req.body; const sql = `UPDATE blog SET title="${title}", content="${content}" WHERE id=${id}`; connection.query(sql, (err, results) => { if (err) throw err; res.send(`修改博客${id}:${title}, ${content}`); }); }); // 删除指定博客 router.delete('/:id', (req, res) => { const id = req.params.id; const sql = `DELETE FROM blog WHERE id=${id}`; connection.query(sql, (err, results) => { if (err) throw err; res.send(`删除博客${id}`); }); }); return router; }; ``` 以上代码实现了一个基本的博客系统,使用了 MySQL 数据库存储博客信息。可以根据实际需求进行修改和完善。需要注意的是,这里的示例代码没有进行参数验证和 SQL 注入防御等安全性方面的处理,实际应用中需要加强安全性方面的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值