Node(4)

2023-11-18


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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node(4) 的相关文章

随机推荐