Vue项目打包后---在nodejs环境中应用并代理跨域

Vue项目打包后—在nodejs环境中应用并代理跨域

使用koa框架部署项目

一、建立web服务文件夹 crmServer
$ mkdir hrServer #建立crmServer文件夹 
二、在该文件夹下,初始化npm
$ npm init -y
三、安装服务端框架koa(也可以采用express或者egg)
$ npm i koa koa-static
四、新建public文件夹,copy打包后的dist目录下的文件到hrServer/public
五、在根目录下创建app.js

app.js

const Koa  = require('koa')
const serve = require('koa-static');

const app = new Koa();
app.use(serve(__dirname + "/public")); //将public下的代码静态化
app.listen(3333, () => {
     console.log('CRM项目启动')
})
六、运行项目

$ node .\app.js

此时,我们可以访问,http://localhost:3333

此时页面可以出来了

补充

解决history页面访问问题

安装 koa中间件
$ npm i koa2-connect-history-api-fallback
注册中间件
const Koa  = require('koa')
const serve = require('koa-static');
const  { historyApiFallback } = require('koa2-connect-history-api-fallback');
const path = require('path')
const app = new Koa();
// 这句话 的意思是除接口之外所有的请求都发送给了 index.html
app.use(historyApiFallback());  // 这里的whiteList是 白名单的意思
app.use(serve(__dirname + "/public")); //将public下的代码静态化

app.listen(3333, () => {
     console.log('人资项目启动')
})

解决生产环境跨域问题

在nodejs中代理
安装跨域代理中间件
$ npm i koa2-proxy-middleware
配置跨越代理
const proxy = require('koa2-proxy-middleware')

app.use(proxy({
  targets: {
    // (.*) means anything
    '/prod-api/(.*)': {
        target: '项目服务器地址', //后端服务器地址
        changeOrigin: true,
        pathRewrite: {     
            '/prod-api': ""
        }
    }
  }
}))

注意:这里之所以用了pathRewrite,是因为生产环境的请求基础地址是 /prod-api,需要将该地址去掉

That is All !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值