这个问题会不会有点傻,希望大佬莫嘲笑
因为前两天因为前后端分离的项目分别在两个端口设置nginx反代花费了过多时间的问题,前端react 后端express
所以我在想它俩有没有可能放在一个端口,这样就不存在跨域了吧?
那为啥还要折腾nginx代理呢?
(为什么没有实践去验证,因为部署花了好久的时间,经不起折腾了)
希望有经验的大佬能给予解答,不胜感激额
没有足够的数据
(゚∀゚ )
暂时没有任何数据
系外行星 提出了问题 · 2020-07-02
这个问题会不会有点傻,希望大佬莫嘲笑
因为前两天因为前后端分离的项目分别在两个端口设置nginx反代花费了过多时间的问题,前端react 后端express
所以我在想它俩有没有可能放在一个端口,这样就不存在跨域了吧?
那为啥还要折腾nginx代理呢?
(为什么没有实践去验证,因为部署花了好久的时间,经不起折腾了)
希望有经验的大佬能给予解答,不胜感激额
这个问题会不会有点傻,希望大佬莫嘲笑因为前两天因为前后端分离的项目分别在两个端口设置nginx反代花费了过多时间的问题,前端react 后端express所以我在想它俩有没有可能放在一个端口,这样就不存在跨域了吧?那为啥还要折腾nginx代理呢?(为什么没有实践去验证,...
关注 3 回答 2
系外行星 回答了问题 · 2020-06-29
自己解决 玄学,在各种百度google加东西,最后我都不知道是加的哪一条语句不再报错了的,惭愧
遂把整个nginx.conf的配置放出来
以及测试了设置socket.io的时候加不加反斜杠/都可 只要 proxy_pass http://127.0.0.1:4000;4000后面不加反斜杠/就行(真的玄学,其实还是自己学艺不精暂时还不知道原理)
user root;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
# http_proxy 设置
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 75;
proxy_send_timeout 75;
proxy_read_timeout 75;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
server
{
listen 80;
server_name localhost;
location /{
root /www/wwwroot/react.com;
}
location /api/ {
proxy_pass http://localhost:4000/;
}
location /socket.io {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:4000;
}
}
}
自己解决 玄学,在各种百度google加东西,最后我都不知道是加的哪一条语句不再报错了的,惭愧遂把整个nginx.conf的配置放出来以及测试了设置socket.io的时候加不加反斜杠/都可 只要 proxy_pass [链接]:4000;4000后面不加反斜杠/就行(真的玄学,其实还是自己学艺不精...
关注 2 回答 3
系外行星 回答了问题 · 2020-06-28
自己解决,提的这个问题其实是某篇博客的一种写法,之前没有直接传action的情况,都是通过mapDispatchToProps 突然愣了 脑子也蒙了,连最基础的写法也不记得了
回归本质
还是这么写
const mapStateToProps=(state)=>{
return {
user:state.user,
}
}
const mapDispatchToProps=(dispatch)=>{
return {
register:(user)=>dispatch(register(user)),
}
}
export default connect(mapStateToProps,mapDispatchToProps)(Register)
此贴完结
自己解决,提的这个问题其实是某篇博客的一种写法,之前没有直接传action的情况,都是通过mapDispatchToProps 突然愣了 脑子也蒙了,连最基础的写法也不记得了回归本质还是这么写
关注 2 回答 2
系外行星 提出了问题 · 2020-06-27
还是小白,问的问题如果太傻还请见谅
是这样的register是个异步action代码如下
// 异步请求注册action
export const register =(user)=>{
return async dispatch => {
// 发送异步ajax请求
const response = await reqRegister({ username, password, type })
const result = response.data
if (result.code === 0) {
getMsgList(dispatch, result.data._id)
// 分发成功的同步action
dispatch(authSuccess(result.data))
} else {
//分发失败的同步action
dispatch(errorMsg(result.msg))
}
}
}
注册组件中需要register这个action,为了代码统一想写成mapDispatchToProps的写法,但是一直报错,目前不会报错的代码如下
const mapStateToProps=(state)=>{
return {
user:state.user,
}
}
export default connect(mapStateToProps,{register})(Register)
希望路过的大佬能把register帮忙写成mapDispatchToProps的形式,不胜感激
注册组件中需要register这个action,为了代码统一想写成mapDispatchToProps的写法,但是一直报错,目前不会报错的代码如下
关注 2 回答 2
系外行星 关注了用户 · 2020-06-23
如果你觉得我说的不错,请点赞。
如果我解决了你的疑惑,请采纳。
尊重他人劳动成果,拒绝伸手党。
P.S. 其实我啥也不会 ^_^
如果你觉得我说的不错,请点赞。如果我解决了你的疑惑,请采纳。尊重他人劳动成果,拒绝伸手党。P.S. 其实我啥也不会 ^_^
关注 144
系外行星 提出了问题 · 2020-06-23
前后端分离,部署在同一服务器的两个端口
前端80 后端4000 我的服务器ip地址是49.232.150.231
在大佬们的建议和自己的理解下修改之后的状况如下,但是错误依然存在,望路过的大佬再次指点迷津
前端react socket代码
function initIO(dispatch, userid) {
if(!io.socket) {
io.socket = io('ws://49.232.150.231:80')
io.socket.on('receiveMsg', function (chatMsg) {
if(userid===chatMsg.from || userid===chatMsg.to) {
dispatch(receiveMsg(chatMsg, userid))
}
})
}
}
后端express socket代码
const {Chat} = require('../model/chat')
module.exports = function (server) {
const io = require('socket.io')(server)
// 监视客户端与服务器的连接
io.on('connection', async function (socket) {
console.log('有一个客户端连接上了服务器')
// 绑定监听, 接收客户端发送的消息
socket.on('sendMsg', async function ({from, to, content}) {
// 处理数据(保存消息)
const chat_id = [from, to].sort().join('_')// from_to或者to_from
const create_time = Date.now()
var chatMsg = await Chat.create({from,to,content,chat_id,create_time})
io.emit('receiveMsg', chatMsg)
})
})
}
express端口的监听我是在bin文件夹下的www文件中,不是在socket文件中这样不知道会不会有问题
var port = normalizePort(process.env.PORT || '4000');
app.set('port', port);
var server = http.createServer(app);
server.listen(port);
目前的nginx反代设置如下
server
{
listen 80;
server_name localhost;
location /{
root /www/wwwroot/react.com;
}
location /api/ {
proxy_pass http://localhost:4000/;
}
location /socket.io {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:4000;
}
}
静态资源请求都正常 只有socketio那一块有问题
可以收发消息但是是通过ajax轮询
websocket没有实现
报错图片如下:
已经折腾好几天了,希望有做过的前辈给予指导,不胜感激
前后端分离,部署在同一服务器的两个端口前端80 后端4000 我的服务器ip地址是49.232.150.231在大佬们的建议和自己的理解下修改之后的状况如下,但是错误依然存在,望路过的大佬再次指点迷津
关注 2 回答 3
系外行星 回答了问题 · 2020-05-18
自己解答~
是react版本的问题
自己解答~是react版本的问题
关注 1 回答 1
系外行星 提出了问题 · 2020-05-18
{this.state.isShow ? (
<Grid
data={this.emojis}
columnNum={8}
// carouselMaxRow={4}
// isCarousel={true}
//分页
onClick={(item) => {
this.setState({content: this.state.content + item.text})
}}
/>
本意是给表情做滑动分页,注释掉的是设置走马灯的代码
加上就会报错,报错如下
是按照antd-mobile的官方文档写的
已经确定是设置跑马灯的错误,因为注释掉就不会报错,当然这就有违了分页的初衷。
希望大佬们帮忙解决,不胜感激。
本意是给表情做滑动分页,注释掉的是设置走马灯的代码加上就会报错,报错如下是按照antd-mobile的官方文档写的已经确定是设置跑马灯的错误,因为注释掉就不会报错,当然这就有违了分页的初衷。希望大佬们帮忙解决,不胜感激。
关注 1 回答 1
系外行星 提出了问题 · 2020-03-27
最近刚学nodejs 现在正动手做一个多人博客
登录时用户输入邮箱和密码
后台用findOne查询的时候是不是不能同时查询email和password,
只能查询到email再去二次判断password是否相等?
如上图所示,这样写就会报错,如果findOne只写email 再用date.password去判断就不会报错,搜索无果,特来此提问,麻烦大家了。
最近刚学nodejs 现在正动手做一个多人博客登录时用户输入邮箱和密码后台用findOne查询的时候是不是不能同时查询email和password,只能查询到email再去二次判断password是否相等?
关注 2 回答 1
系外行星 回答了问题 · 2020-03-25
依旧用版主的send方法 res.send('<script>alert("用户名或密码错误,请重新登录"); setTimeout(function(){location.href="/newslist.html"},3000) </script>')
依旧用版主的send方法 res.send('<script>alert("用户名或密码错误,请重新登录"); setTimeout(function(){location.href="/newslist.html"},3000) </script>')
关注 6 回答 3
查看全部 个人动态 →
(゚∀゚ )
暂时没有
(゚∀゚ )
暂时没有
注册于 2019-12-23
个人主页被 271 人浏览
推荐关注