我正在寻找hapi中的parllel方法
// Express + Request exmaple
function(req, res){
request('http://example.com/image.png').pipe(res);
}
Run Code Online (Sandbox Code Playgroud)
如何在hapi中管理响应?
server.route({
method: "*",
path: "/api/results/{date}",
handler: (request, reply) => {
//????reply(?);
}
});
Run Code Online (Sandbox Code Playgroud) 与Redux的ToDo示例类似,我的项目结构类似 - 只是一个容器,其中包含要显示的子组件数组.商店看起来像下面这样:
{
workspace: {
widgets: [1, 2, 3]
}
widgets: {
1: {
id: 1,
title: 'First Widget',
lastPrice: 123.324,
lastUpdate: '2015-11-12'
},
2: {
id: 2,
title: 'Second Widget',
lastPrice: 1.624,
lastUpdate: '2015-11-12'
},
3: {
id: 3,
title: 'Third Widget',
lastPrice: 4.345,
lastUpdate: '2015-11-12'
}
}
}
Run Code Online (Sandbox Code Playgroud)
每个小部件项目本身都是一个复杂的组件 - 许多可能的操作,许多属性和许多子哑组件.因此,我已经使每个小部件成为具有专用WidgetReducer的连接智能组件,以使这些状态更改保持独立.
我希望WidgetReducer一次只关注一个小部件,因此它处理的状态只是一个小部件节点,如:
{ id: 3,
title: 'Third Widget',
lastPrice: 4.345,
lastUpdate: '2015-11-12'
}
Run Code Online (Sandbox Code Playgroud)
My Workspace组件当前遍历所有Widgets,将Widget ID传递给每个Widget智能组件:
@connect(state => ({ workspace: state.workspace }))
export default class Workspace extends …Run Code Online (Sandbox Code Playgroud) 我正在使用Hapi.js为我的移动应用程序实现RESTful API.我已经集成了Good for logging请求,错误和其他事件.它对我很有用.但是,不清楚如何记录请求和响应有效负载(JSON对象).
我将不胜感激任何帮助.
在我的组件中,我有以下内容:
componentWillMount: function () {
this.unsubscribe = store.subscribe(function () {
this.setState({message: store.getState().authentication.message});
}.bind(this));
},
componentWillUnmount: function () {
this.unsubscribe();
},
Run Code Online (Sandbox Code Playgroud)
不调用unsubscribe会导致以下错误:
警告:setState(...):只能更新已安装或安装的组件.这通常意味着您在已卸载的组件上调用了setState().这是一个无操作.
我想知道的是,我应该被分配unsubscribe到this或者是有一个更好的地方来分配呢?
我希望能够很好地忽略特定路线的记录,因为它是一个健康检查路线,每隔几秒就会被亚马逊调查一次 - 它只会给我们的日志增加噪音.
我是否可以为好的插件设置路由特定的配置,以便它只忽略一个特定的路由?
我在redux中使用相同的形式和相同的状态来添加和编辑.当我调用api获取数据进行编辑时,我们更改路由器以在响应到达之前添加表单.所有表单数据都将自动填充以添加项目,因为我使用相同的状态进行添加和编辑.有没有办法防止这种情况发生?
我的动作创作者:
fetchById: function (entity, id) {
return function (dispatch) {
dispatch(apiActions.apiRequest(entity));
return (apiUtil.fetchById(entity, id).then(function (response) {
dispatch(apiActions.apiResponse(entity));
dispatch(actions.selectItem(entity, response.body));
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于响应较晚,因此selectItem会延迟发送.当我打开表单添加项目时,此表单将填充响应中的此数据.
我在Elastic Load Balancer(ELB)后面使用AWS Elastic Beanstalk和EC2服务器.
我在ELB上启用了"粘性会话",因为这是我可以让django用户会话正常工作的唯一方法.但是,在高峰流量时,这会导致问题,因为ELB不再均匀地分配每个传入请求.这通常会像迷你DDOS一样超载1台服务器.
我想要做的是使用服务器端用户会话,其中用户身份验证信息存储在我的Redis缓存中.我试过设置SESSION_ENGINE很多东西,比如:
SESSION_ENGINE = 'redis_sessions.session'
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
Run Code Online (Sandbox Code Playgroud)
然后,当我关闭粘性会话时,我无法登录,因为请求最终会转到不同的服务器,其中某些请求已经过身份验证而其他请求未经过身份验证.那些不是,将我重定向回登录页面.
以下是我的一些其他相关设置:
INSTALLED_APPS = (
...,
'django.contrib.sessions',
...,
)
MIDDLEWARE_CLASSES = (
...,
'djangosecure.middleware.SecurityMiddleware',
...,
'django.contrib.sessions.middleware.SessionMiddleware',
...,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
...,
)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?非常感谢.
django load-balancing django-sessions amazon-elastic-beanstalk sticky-session
我在react-redux&API app上有一个客户端应用程序loopback.
对于我的本地测试,我在端口8080上运行客户端应用程序,在端口3000上运行服务器应用程序
当我尝试使用loopback-passport component客户端应用测试Google OAuth(使用)时,我收到以下错误.
当我使用POSTMAN测试它时,没有问题.
这是客户端代码,
require('babel-polyfill');
import { CALL_API } from 'redux-api-middleware';
import C from '../constants';
const API_ROOT = 'http://localhost:3000';
function googleLogin() { return async(dispatch) => {
const actionResp = await dispatch({
[CALL_API]: {
endpoint: API_ROOT + '/auth/google',
headers: {
'Access-Control-Allow-Credentials': 'false',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Origin': API_ROOT
},
method: 'GET',
types: ['GET', 'GET_SUCCESS', 'GET_FAILED']
}
});
if (actionResp.error) {
console.log(actionResp);
throw new Error('Some error in communication', actionResp);
} else {
console.log(actionResp);
} …Run Code Online (Sandbox Code Playgroud) 教程:
但是因为我使用redux和反应路由器,所以我不能真正把MuiThemeProvider放到链的顶端.包含此库的最佳方法是什么?
那是我的ReactDOM.render函数:
ReactDOM.render(
<Provider store={store}>
<div>
{devTools}
<Router history={history} routes={getRoutes(actions.logout)}/>
</div>
</Provider>,
document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)
那就是路由器:
export default (onLogout) => (
<Route path="/" name="app" component={App}>
<IndexRoute component={SimpleListComponent}/>
<Route path="register" component={RegisterPage}/>
<Route path="private" component={privateRoute(PrivatePage)}/>
<Route path="login" component={LoginPage}/>
<Route path="logout" onEnter={onLogout}/>
</Route>
);
Run Code Online (Sandbox Code Playgroud) 是React-Router(1.0.0-rc)url params中路由之间传递数据的唯一方法吗?我有一个组件,它使用History mixin,并有一个事件处理程序,它发出服务器请求,然后调用that.history.pushState(null, '/B');转换到由组件B处理的路由B.现在,我想传递一些我返回的数据由服务器将组件B作为prop(例如"登录成功"),或以某种方式影响B的状态,但我找不到任何文档说明这是可能的.有没有办法做到这一点,还是我需要将其作为url参数传递?
javascript ×9
reactjs ×6
redux ×4
hapijs ×3
react-router ×3
node.js ×2
cors ×1
django ×1
loopbackjs ×1
material-ui ×1
react-redux ×1
stream ×1