vue+node.js+mysql

本文详细介绍如何使用Node.js和Express框架搭建后端服务,包括文件结构设计、数据库连接配置、API实现及路由设置,为初学者提供了一个完整的后端服务搭建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先创建一个sevver文件夹,里面存放后端文件
在这里插入图片描述
文件夹下创建以下文件
在这里插入图片描述

  • index.js 后端入口文件,启动后端服务
  • db.js 数据库连接配置
  • api.js 连接数据库,各种方法实现
  • sqlMap.js sql语句
  • router.js 后端 express 路由配置

index.js

const routerApi = require('./router');
const bodyParser = require('body-parser'); // post 数据时需要
const express = require('express');
const app = express();

app.use(bodyParser.json());

// 后端api路由
app.use('/api', routerApi);

// 监听端口
app.listen(3030);
console.log('success listen at port:3030......');

router.js

const express = require('express');
const router = express.Router();
const api = require('./api');

// post方法通过body获取参数,需要使用body-parser,否则body为空
var bodyParser = require('body-parser');

var urlencodedParser = bodyParser.urlencoded({
  extended: false
});

router.use(bodyParser.urlencoded({
  extended: false
}));

router.post('/leyou/user/login', (req, res, next) => {
  api.login(req, res, next);
})

router.post('/leyou/user/getUserInfo', (req, res, next) => {
  api.getUserInfo(req, res, next);
})


module.exports = router;

api.js

const mysql = require('mysql');
const dbConfig = require('./db');
const sqlMap = require('./sqlMap');

const pool = mysql.createPool({
  host: dbConfig.mysql.host,
  user: dbConfig.mysql.user,
  password: dbConfig.mysql.password,
  database: dbConfig.mysql.database,
  port: dbConfig.mysql.port,
  multipleStatements: true // 多语句查询
});

module.exports = {
  // 登录
  login(req, res, next) {
    // console.log(req)
    console.log(req.body)
    var userid = req.body.userid;
    var password = req.body.password
    // console.log(userid, password)
    pool.getConnection((err, connection) => {
      var sql = sqlMap.login;
      connection.query(sql, [
        userid,
        password
      ], (err, data) => {
        // console.log(err, data)
        if (err) {
          console.log(err)
          var result = {
            "code": 500,
            "result": 0,
            "message": "服务器错误",
            "data": null
          }
          return res.json(result);
        } else {
            let result = {
              "code": 200,
              "result": 1,
              "message": null,
              "data": data[0]
          }
          return res.json(result);
        }
        // connection.release();
      })
    })
  },
  // 获取用户信息
  getUserInfo(req, res, next) {
    var userid = req.body.userid;
    pool.getConnection((err, connection) => {
      var sql = sqlMap.getUserInfo;
      connection.query(sql, userid, (err, data) => {
        if (err) {
          console.log(err)
          var result = {
            "result": 0,
            "code": 500,
            "message": "服务器错误",
            "data": null
          }
          return res.json(result);
        } else {
          console.log(data)
          var result = {
            "result": 1,
            "code": 200,
            "message": null,
            "data": data[0]
          }
          return res.json(result);
        }
      })
    })
  }
}

db.js

// 数据库连接配置
module.exports = {
  mysql: {
    host: 'localhost', // 新建数据库连接时的 主机名或ID地址 内容
    user: 'root',
    password: 'root', // root 密码
    database: 'leyou', // 数据库名
    port: '3306'
  }
}

sqlMap.js

var sqlMap = {
  login: 'SELECT userid,username,avatar FROM user_info WHERE userid = (SELECT userid FROM users WHERE userid = ? and password = ?);',
  getUserInfo: 'SELECT userid,username,avatar,sex,birthday,address,autograph FROM user_info WHERE userid = ?;',
}

module.exports = sqlMap;

完成后,在终端中进入sever目录下,输入指令node index即可运行
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值