如何解决MERN堆栈-链接作为节点的端点在生产中不起作用
React.js:我有一个Google登录按钮,看起来像这样
const GoogleButton = () => (
<a href='/auth/google' >
<div className='google-icon-wrapper'>
<img className='google-icon' src= {googleLogo} alt='Google logo'/>
</div>
<p className ='google-btn-text'>
Sign in with google
</p>
</a>
)
处于开发模式的React.js(http-proxy-middleware)我也有代理设置
const proxy = require("http-proxy-middleware");
module.exports = function(app) {
app.use(proxy("/auth/",{ target: "http://localhost:5000/" }));
app.use(proxy("/api/",{ target: "http://localhost:5000/" }));
};
Node.js:我有这个端点,在生产环境中不起作用 因为代理不适用于生产
app.get('/auth/google',passport.authenticate('google',{
scope: SCOPE,access_type: 'offline',})
);
**当我单击生产中的按钮时,反应将我发送到页面-例如:www.example.com/auth/google-但必须调用节点端点**,但是当我发出提取请求时,节点端点有效,例如,如果我这样做:fetch('/ api / google'),它将有效..
更新:问题出在React serviceWorker.js-PWA ...它缓存了结果和链接..我认为不确定..
解决方法
如果您将http://localhost:5000/
明确标识为prod上node.js的主机和端口,则可能会比较棘手。
诸如heroku
之类的某些平台会自动绑定 port ,因此您无法确切知道它是哪个。尝试对从HOST
获取的env
使用一个env变量,并尝试像http://localhost:${host}/
这样绑定在代理中
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。