javascript - 如何在服务端配置node代理的接口

查看:89
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆