笔者最近做完一个项目,在做项目的过程中也发现了很多问题,例如数据库的多表查询,笔者太久没用忘记了,还有vue打包以后的跨域问题,所以笔者在这里巩固一下。
多表查询
内连接
select * from 数据表1 inner join 数据表2 on 数据表1.1的某一属性 =数据表2.2的某一属性;
这样查询的结果是两个表所有的数据都有,与多表联合查询的结果是一样的
左外连接
select * from 数据表1 left join 数据表2 on 数据表1.1的某一属性 =数据表2.2的某一属性;
这样查询的结果是数据表1的结果都有,但是数据表2只会显示满足条件(select * from 数据表1 left join 数据表2 on 数据表1.1的某一属性 =数据表2.2的某一属性)的值,不满足条件的会显示null
右外连接
select * from 数据表1 right join 数据表2 on 数据表1.1的某一属性 =数据表2.2的某一属性;
这样查询的结果是数据表2的结果都有,但是数据表1只会显示满足条件(select * from 数据表1 right join 数据表2 on 数据表1.1的某一属性 =数据表2.2的某一属性)的值,不满足条件的会显示null,与左外连接是相反的
vue打包以后的跨域问题
用vue-cil的proxy代理处理的跨域,只在生产环境生效,在打包以后,就会失效,所以我们要利用node再去解决打包后的跨域问题,我用了'koa'和'koa2-proxy-middleware'
- 首先初始化一个项目
- 讲打包后的dist文件改名为public并放入
- 安装依赖
npm i koa koa-static koa2-proxy-middleware
具体代码配置如下:
const Koa = require('koa')
const serve = require('koa-static');
const app = new Koa();
const proxy = require('koa2-proxy-middleware')
app.use(proxy({
targets: {
// (.*) means anything
'/api/(.*)': {
target: '跨域的地址与在proxy里的那个一样',
changeOrigin: true, // 是否跨域
pathRewrite: {
'/api': '', // 重写路径
},
},
}
}))
app.use(serve(__dirname + "/public")); //将public下的代码静态化
app.listen(3000, () => {
console.log('项目启动')
})
最后附上笔者毕设吧,待毕设毕设答辩后,代码会开源
Comments NOTHING