node连接mysql数据库实现登录接口


# node连接mysql数据库实现登录接口

创建node项目

在小窗口使用npm创建,生成package.json文件

npm init

项目结构目录

在这里插入图片描述

创建db.js链接mysql数据库

const mysql = require('mysql');

exports.base = (sql, data, callback) => {
    const connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'root',
        database: 'test' 
    });
    connection.connect();

    connection.query(sql, data, function(error, results, fields) {
        if (error) throw error;
        callback(results);
        console.log('数据库连接成功');
    })
    connection.end();
}

app.js

// 创建express服务器
const express = require('express')
const app = express()
// 注册解析 表单数据的 body-parser
const bodyParser = require('body-parser')
// 将请求响应设置content-type设置为application/json
const router = require('./routes/users.js')
app.use('/api/*', function(req, res, next) {
    // 设置请求头为允许跨域
    res.header("Access-Control-Allow-Origin", "*");
    // 设置服务器支持的所有头信息字段
    res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
    // 设置服务器支持的所有跨域请求的方法
    res.header("Access-Control-Allow-Methods", "POST,GET");
    // next()方法表示进入下一个路由

    next();
});
// post
app.use(bodyParser.urlencoded({
    extended: false
}))
// 处理json格式的参数
app.use(bodyParser.json())
// 配置路由
app.use(router)
//设置cookies
// 服务器已经启动
app.listen('3003', function() {
    console.log('running...')
})

users.js 链接接口

const express = require('express')
const router = express.Router()
const services = require('../services/userService.js')
// 登录功能
router.post('/api/login', services.login)
//注册功能
router.post('/api/register', services.register)
module.exports = router

userService.js 对于接口进行处理

const db = require('../sql/db.js');
const jwt = require('../token.js');
exports.login = (req, res) => {
    let {
        username,
        password
    } = req.body;
    // 查询语句
    let sql = 'select * from user where username = ?'
    db.base(sql, username, (result) => {
        if (!result.length) {
            return res.json({
                status: -1,
                msg: '登录失败'
            })
        } else {
            if (result[0].password == password) {
                let token = jwt.creatToken({
                    login: true,
                    username: username
                });
                return res.json({
                    status: 1,
                    msg: '登录成功',
                    token: token
                })
            }
            return res.json({
                status: -2,
                msg: '密码错误'
            })
        }
    })
}
exports.register = (req, res) => {
    let {
        username,
        password,
        token
    } = req.body;
    console.log(req.body);
}

运行app.js,项目运行成功,测试接口

node app.js

在这里插入图片描述

} = req.body;
console.log(req.body);

}

运行app.js,项目运行成功,测试接口

node app.js

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200426151640589.png)


到此一个node的登录接口就实现,需求什么样的接口,可以去扩展。

文章作者: 曹豆芽
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 曹豆芽 !
 上一篇
es6的基本使用 es6的基本使用
ES6的一些基本使用变量声明var let 都可用于声明变量. 区别:1、let:只在let命令所在代码块内有效 ​ 2、let 不存在变量提升(内部影响不到外部) var b = []; for(var j=0;
2020-05-03
下一篇 
vue从零到运行项目的完整搭建步骤 vue从零到运行项目的完整搭建步骤
# vue从零到运行项目的完整搭建步骤 今天小编总结了一下,vue项目从环境的搭建和项目的初始运行,希望可以对一些刚学习vue的小伙伴有一些帮助。 1.安装环境1.1node环境自己可以根据自己的电脑去选择版本,下载完成,点击安装即可,可
2020-04-18
  目录