基本能用的express

本文介绍了如何在Node.js中使用express创建服务器,并与MySQL数据库进行交互。通过安装必要的包,创建app.js文件配置全局中间件,然后设置路由处理函数。同时,文章还展示了如何将数据库操作转换为Promise,以简化异步处理。具体涉及到的路由处理函数包括获取报告数据和储存场景信息。
摘要由CSDN通过智能技术生成

1.安装express和mysql

npm i express
npm i mysql

2创建基本服务器

  1. 创建app.js文件
// 导入 express 模块
const express = require('express')

// 创建 express 的服务器实例
const app = express()

// 将 cors 注册为全局中间件
app.use(cors())

//在 app.js 中,所有路由之前,声明一个全局中间件,为 res 对象挂载一个 res.cc() 函数 
// 响应数据的中间件
app.use(function (req, res, next) {
  // status = 0 为成功; status = 1 为失败; 默认将 status 的值设置为 1,方便处理失败的情况
  res.cc = function (err, status = 1) {
    res.send({
      // 状态
      status,
      // 状态描述,判断 err 是 错误对象 还是 字符串
      message: err instanceof Error ? err.message : err,
    })
  }
  next()
})

// 导入并注册用户路由模块
const userRouter = require('./router/user')
app.use('/api', userRouter)


app.listen(80 , () => {
    console.log('sever running at http://127.0.0.1')
})
  1. 创建db 数据库操作模块
// 导入 mysql 模块
const mysql = require('mysql')

// 创建数据库连接对象
const db = mysql.createPool({
  host: '127.0.0.1',
  user: 'root',
  password: 'root',
  database: 'assessmenttasks',
})

// 向外共享 db 数据库连接对象
module.exports = db
  1. 创建router文件夹在其中创建路由模块(例user.js)
const express = require('express')
const router = express.Router()

// 导入用户路由处理函数模块
const reportData = require('../router_handler/menu')
const scenedata = require('../router_handler/scene')

//获取报告数据
router.post('/reportdata', reportData.getLeftData)
//储存场景信息
router.post('/setscenedata', scenedata.setSceneData)

module.exports = router
  1. 创建文件夹router_handler 在其中写具体的路由处理函数
//导入数据库操作模块
const db = require('../db/index')

exports.setSceneData = (req, res) => {
    const sql = select * from scene
    db.query(sql,{参数},(err,results) => {
        if (err) {
              return res.cc(err);
            } else {
              res.send({
                status: 0,
                message: "存储成功!",
                data:results
              });
            }
    })
}

2.使用Promise

  1. 首相将数据库暴露为Promise
// 导入 mysql 模块
const mysql = require('mysql')

// 创建数据库连接对象
const db = mysql.createPool({
  host: '127.0.0.1',
  port: 3306
  user: 'root',
  password: 'root',
  database: 'assessmenttasks',
})

// 向外共享 db 数据库连接对象
export default db.promise()
  1. 使用
//导入数据库操作模块
const db = require('../db/index')

exports async function setSceneData = (req, res) => {
    const sql = select * from scene
    //使用解构赋值
             
const [rows] = await db.query(sql,{参数},(err,results) => {
        if (err) {
              return res.cc(err);
            } else {
              res.send({
                status: 0,
                message: "存储成功!",
                data:rows
              });
            }
    })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值