javascript - 如何在服务端配置node代理的接口
问题描述
用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托管)
本地开发是 express 在代理端口提供服务,当你打包后就是纯静态资源了,要访问的话一般是配置 Nginx 来代理的,具体阿里云的弹性web托管这边该怎么做没接触过,估计加上 Nginx 关键词都能搜索得到
这篇关于javascript - 如何在服务端配置node代理的接口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!