微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL之旅 nodeJS + express + MySQL 实现接口连接数据库

导言: 由于本人初次尝试,真的一言难尽啊!遇到很多问题, 问题我会列出来,如果你有好的方法实现欢迎留言!

问题:

1·nodeJS与MysqL版本8.0+冲突问题?

查资料得出结论有以下几种:

a,MysqL降版本 nodeJs 支持 5.7+版本

b,由于MysqL卸载太麻烦了 我选择的这种是把MysqL密码改简单一点,或许这就是加密简单的原因吧!最后结果是正常连接到数据库

以下是MysqL改密码指令:

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH MysqL_native_password BY ‘修改后的密码’

刷新权限:

FLUSH PRIVILEGES

tips:我的密码改成超简单的123,毕竟用来测试嘛

现在步入正题 nodeJs写的接口连接MysqL数据:

步骤一:确定安装了node;

检测安装指令:

node -v

若没有安装:nodeJS传送门

 安装完成后开始node项目。

步骤二:分以下几个小步骤

a,选个目录,起个名 比如 serverNode

b,cd到这个目录,输入指令

npm init
npm install body-parser express MysqL cors -S

c,根目录有个app.js文件,若没有自己创建一个app.js

var http = require('http');
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');


var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

/**
 * 连接 MysqL 数据库
 * */ 
var MysqL = require('MysqL');
var connection = MysqL.createConnection({
  host:'127.0.0.1',
  user: 'root',
  password: '123',
  database: 'userslist',
  port: '3306'
});
connection.connect((err) => {
  if(err) throw err;
  console.log(`连接成功`)
});

var app = express();

// 跨域
// 跨域
const cors = require( 'cors');
app.use(cors());

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
// app.use(function(req, res, next) {
//   next(createError(404));
// });


// 跨域  同一站点:协议,域名,端口都一样的叫做同一个站点
//设置跨域访问  res.header("Access-Control-Allow-Headers", "X-Requested-With")  || res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');;
// app.all('*', function(req, res, next) {
//     res.header("Access-Control-Allow-Origin", "*");
//     res.header("Access-Control-Allow-Headers", "X-Requested-With");
//     res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
//     res.header("X-Powered-By",' 3.2.1')
//     res.header("Content-Type", "application/json;charset=utf-8");
//     next();
// });

// 接口
app.get('/', (req, res) => {
  res.send('<div>hello world</div>')
})
app.get('/login',(req, res) => {
  res.json('<div>hello login</div>')
})
app.get('/checkMysqL', (req, res) => {
  let sql = `SELECT * FROM person`;
  connection.query(sql, (err, result) => {
    if(err){
      console.log(err);
      res.send(`<p>err:${err}</p>`)
    }else{
      console.log(result);
      res.json(result)
    }
  })
})
// 设置端口
app.listen(3434, console.log("application is start at port 3434"));

module.exports = app;
    

tips: 以上全部代码,因为下班了,细节我就直接略过了,代码有注释;

启动node

指令:

npm start

正常启动后显示以下内容

PS D:\server\nodeServer> npm start

> nodeserver@0.0.0 start D:\server\nodeServer
> babel-node app

application is start at port 3434
连接成功

最后随便打开一个浏览器,输入网址:http://127.0.0.1:3434/checkMysqL

显示以下内容

[
    {
        "number": 2,
        "name": "Yaya",
        "birthday": "2021-05-20T16:00:00.000Z",
        "age": 18,
        "member_id": 1,
        "cardID": 622455464,
        "phone": 1399985882,
        "address": null
    },
    {
        "number": 3,
        "name": "Long",
        "birthday": "2021-06-20T16:00:00.000Z",
        "age": 18,
        "member_id": 2,
        "cardID": null,
        "phone": 42221313,
        "address": null
    },
    {
        "number": 1,
        "name": "zhang",
        "birthday": "2021-12-10T16:00:00.000Z",
        "age": 20,
        "member_id": 3,
        "cardID": null,
        "phone": 546513221,
        "address": null
    }
]

我这边自己用的是postman: 感兴趣的朋友可以下载一下:postman传送门

最后附上截图:


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐