express跨域解决
方式一
//设置请求头
app.all("*",function(req,res,next){
//设置响应头
res.setHeader("Access-Control-Allow-Origin","*")
res.setHeader("Access-Control-Allow-Methods","GET,POST")
next()
})
方式二
const cors = require("cors")
app.use(cors())
路由传参
//路由传参
router.get("/:id/:name",function(req,res,next){
res.send(req.params)//获取传递的参数 id为一个键 name 为一个键
res.end()
})
静态资源渲染(serve-static)
app.use("/publi",express.static('./public'))//给app加一个静态资源管理
MVC
model 主要是业务处理数据库查询
view主要是视图
controller主要是请求处理
1.新建文件夹 routers 路由管理utils工具类
路由内容
const express = require('express')
const userController = require('../controller/userController')
const router = express.Router()
router.get('/user/',userController.queryAll)
module.exports = router
工具类
//1.导入
const mysql = require('mysql)
const config = require('./config')
class MysqlUtils{
constructor(){
this.pool = null
}
static init(){
this.pool = mysql.createPool(config)
}
static querySql(sql,params=null){
return new Promise((success,error)=>{
this.pool.getXonnection((err,conn)=>{
if(err) therow new Error('获取连接失败')
conn.query(sql,params,function(err,data){
if(err) error('执行失败')
ele success(data)
})
//释放连接
conn.release()
})
})
}
}
module.esports = MysqlUtils
配置
module.exports = {
host:"localhost",
port:"3306",
user:"root",
password:"root",
database:"db_user",
charset:"UTF8_GENERAL_CI"
}
2. 新建文件夹 controller 请求处理
const us = require('../model/service/userService')
//查询所有的处理
const queryAll = (req,res,next) =>{
us.findAll().then(result=>{
res.send({message:"ok",data:result})
res.end()
})
}
module.exports = {
queryAll
}
3.新建文件夹 model (service 和dao)
dao
//导入mysql的工具类
const mysqlUtils = requie('../../utils')
mysqlUtils.init()
//查询所有的数据
const findAll = () => {feturn mysqlUtils.querySql('select * from t_user')}
module.exports = {
findAll
}
server
contst userDao = require('../dao/userDap')
contst findAll = () =>{
return userDao.findAll()
}
module.exports = {
findAll
}
4. 新建一个入门文件
const express = require('express')
const cors = require('cors')
const router = require('./routers')
const app = express()
app.use(cors()) //跨域
app.use(express.urlencoded({extended:false}))//body里面的数据读取
app.use(express.json())//请求数据转换
app.use(exoress.static('./view'))//静态资源
app.use(router)//所有路由
app.listen(9999.function(){
console.log('服务器启动')
})
根据id查询
dao
//导入mysql的工具类
const mysqlUtils = require(../../utils)
mysqlUtils.init()
//查询所有的数据
const findAll = () =>{return mysqlUtils.querySql('select * from t_user')}
//根据id查询
const findById= (id)=>{returm mydqlUtils.querySql('sele * from t_user where id = ?',id)}
module.exports = {
findAll,
findById
}
service
const userDao = require('../dao/userDao')
consr findAll = (id)=>{
if(id){
return userDao.findById(id)
}
return userDao.findAll()
}
const findById = (id) =>{
return userDao.findById(id)
}
module.exports={
findAll,
findById
}
controller
const us - require('../model/service/userService')
//查询所有的处理
const qureyAll = (req,res,next) =>{
us.findAll(req.query.id).then(result=>{
console.log(req.query.id)
res.send()
})
}
const queryById = (req,res,next)=>{
us.findById(req.params.id).then(result=>{
res.send({message:'ok',data:result})
res.end()
})
}
module.exports = {
queryAll,
queryById
}
路由
const express = require ('express')
const userContriller = require('../controller/userController')
const router = express.Router()
router.get('user/',userController.queryAll)
router.get('user/:id',userController.queryById)//路由传参
module.exports = router
分页参数
**dao
//分页查询
const findLimit= (start,count) =>{return mysqlUtils.querySql('select * from t_user limit ?,?',[start,count])}
service
const findUserLimit = (page,limit) =>{
if(!limit){
limit = 10
}
if(!page){
page = 1
}
// page 第几页
// limit 个数
// 计算开始的位置
let start = (page-1)*limit
return userDao.findLimit(start,parseInt(limit))
}
controller
const queryAll = (req,res,next) => {
//分页查询
if(req.query.limit || req.query.page){
us.findUserLimit(req.query.page,req.query.limit).then(result=>{
res.send({message:'ok',data:result})
res.end()
})
}else{
//查询所有
us.findAll(req.query.id).then(result=>{
res.send({message:'ok',data:result})
res.end()
})
}
}
路由
const express = require('express')
const userController = require('../controller/userController')
const router = express.Router()
router.get('/user/',userController.queryAll)
router.get('/user/:id',userController.queryById) //路由传参
module.exports = router