用webpack开发项目,需要用node代理一个接口。我将代理接口的代码保存在项目根目录下的prod.server.js中。
代码如下:`var express = require('express')
var compression = require('compression')
var config = require('./config/index')
var axios = require('axios')
var port = process.env.PORT || config.build.port
var app = express()
var apiRoutes = express.Router()
apiRoutes.get('/getDiscList', function (req, res) {
var url = 'https://x.xx.com/splcloud/fcg...'
axios.get(url, {
headers: {
referer: 'https://x.xx.com/',
host: 'x.xx.com'
},
params: req.query
}).then((response) => {
res.json(response.data)
}).catch((e) => {
console.log(e)
})
})
app.use('/api', apiRoutes)
app.use(compression())
app.use(express.static('./dist'))
module.exports = app.listen(port, function (err) {
if (err) {
console.log(err)
return
}
console.log('Listening at http://localhost:' + port + 'n')
})`
项目打包压缩后,在本地模拟线上环境,命令行中输入node prod.server.js,一切都是没有问题的,数据都可以正常取到。但是将dist目录下的文件传至服务器项目目录相应的目录中,代理接口就失效了,报404错误。可以发现问题的症结是我没有在服务端配置代理接口的代码。这方面我也不是很懂,不知有哪位仁兄可以不吝赐教一下,先谢谢了。(我购买的空间是阿里云的弹性web托管)