Tag: redux

如何用mongoDb实现Express?

我正在使用ErikRas的启动器在React,Redux,Express和Socket io中构build一个Web站点: https : //github.com/erikras/react-redux-universal-hot-example 对我来说,这看起来很疯狂:这么多的教程反应和redux。 不想说如何实现MongoDb。 我希望答案对其他人也有用。 事实上,我们可以在网上find的所有初学者都避免谈论和提供数据存储的例证。 也许是因为它太复杂了。 我不知道。 所以…我试图添加MongoDb。 这些教程显示了不同的方式,但始终以纯粹的node.js和express来表示,并且通常具有非常简单的设置。 但是首发的api根本不容易,我迷路了! 我不知道是否必须在api.js或server.js或…中连接它,我非常迷惑! 我设置了MongoDb,它工作正常。 我已经通过terminal收取了一些数据。 然后,在api.js中,我添加了一些行(在下面的代码中注释): import express from 'express'; import session from 'express-session'; import bodyParser from 'body-parser'; import config from '../src/config'; import * as actions from './actions/index'; import {mapUrl} from 'utils/url.js'; import PrettyError from 'pretty-error'; import http from 'http'; import SocketIo from […]

使用webpack ou npm在多个包中分割javascript Javascript项目

我正在尝试构build一个必须在Windows(PC),Android和iOS上运行的应用程序。 为此,我将使用Electron(用于Windows)和React Native(用于移动平台)。 两者都将使用React和Redux进行构build。 这样,我将能够在Redux reducer和中间件中实现逻辑,并在两个项目中使用它们。 从现在开始,我使用webpack为Electron应用程序完成了POC。 reducer目前直接在应用程序代码中。 我想在一个单独的包中提取Redux的相关代码,以允许我在React Native项目中使用它。 我可以为包含reducer和middware的Redux模块创build一个npm包,但是这样,当我编译我的应用程序时,webpack不会编译我的单独包,它将使用预编译版本。 所以我想要的是能够创build一个单独的包,但仍然在应用程序编译时编译它(因为它仍然在开发中,而且dev与主应用程序dev密切相关)。 我只能用npm还是用webpack呢? 我很新的Javascript开发堆栈。

使用Mongoose和Redux删除logging

当用户按下给定logging的button时,我想删除我的mongoDB中的logging。 以供参考: 我有我所有的mongoose和redux代码设置,但我得到这个错误: 这是我的行动: //deletes a survey when user clicks button export const deleteSurvey = (surveyId) => async dispatch => { const response = await axios.delete("/api/surveys", surveyId); dispatch({ type: FETCH_SURVEYS, payload: response.data }); }; 这是我的路由处理程序: app.delete("/api/surveys", requireLogin, (req, res) => { Survey.findByIdAndRemove(req.surveyId, (err, survey) => { let response = { message: "Survey successfully deleted", }; […]

服务器端与REDX渲染

我有一个简单的应用程序与reactjs和redux构build。 作为即时开始学习REDX我有一些问题做服务器端渲染。 我到目前为止是…客户端App.js呈现应用程序组件。 render( <Provider store={store}> <App /> </Provider>, document.body ); 应用程序组件: const App = () => ( <div> <SearchContainer /> <TodoContainer /> </div> ) 如果两个项目都是容器,SearchContainer从input框中获取input,发起一个正在调度带有加载待办事项(来自远程rest服务)的消息的操作。 现在编号喜欢加载在服务器端的页面加载的待办事项,并显示一次页面显示。 我会怎么做呢? 有没有办法在页面实际显示之前不使用服务器端渲染和加载项目? 目前为止,route.js文件是: const middleware = [ thunk ] if (process.env.NODE_ENV !== 'production') { middleware.push(createLogger()) } const store = createStore(reducer,applyMiddleware(…middleware)) app.get('/', function(req, res) { res.render('home',{ markup: ReactDOMServer.renderToString( <Provider […]

使用react-dev-tools黑客authentication

我正在学习基于令牌的身份validation,我有一个问题。 想象一下,在我的应用程序中的身份validation过程是按照以下方式完成的:每当用户提供正确的凭据,我给他一个令牌,并将REDX存储中的“已validation”密钥更改为true,这允许他在我的应用程序中查看私人内容。 我想要隐藏的组件是这样编码的: if(this.props.authenticated) { return <SuperSecretComponentOfIlluminatiMasonic666Chemtrails /> } else { return <PublicComponent /> } 我不知道这是否是一个安全的方法,因为任何人都可以安装react-dev-tools,在浏览器中翻动“已validation”的密钥,并在不提供凭据的情况下查看我想要隐藏的内容。 我的组件应该以不同的方式编码,或者一切正常,我只是在错误的方面? 我已经在很多教程中看到了这个方法,但这个问题不让我在晚上睡觉

客户端库的devise有什么意义?

为了解决来自Redux的警告背后的问题,我偶然发现了一些build议 , 这些build议解释了使用React或Redux为了生成针对生产使用进行了优化的构build,envifying是必要的步骤。 Envifying被解释为将诸如process.env.NODE_ENV类的节点特定的环境variablesreplace为诸如'production'类的实际值的process.env.NODE_ENV 。 接受envifying是必要的,上面的解释是真实的,它使我感到困惑,因为它似乎假设客户端库(如React和Redux)将包含特定于节点的环境variables。 是的,我知道这些库特别是build立同构/通用JavaScript应用程序的stream行,但会发现是令人惊讶的。 我是正确的理解这个? 如果是的话,那么我需要知道在节点外部使用process.env.NODE_ENV的模式的解释吗? 如果我正确理解了这个build议,那么就会提示如果我使用的是Webpack,那么我可能想使用像DefinePlugin这样的插件。 new webpack.DefinePlugin({ "process.env.NODE_ENV": process.env.NODE_ENV, }), 这似乎也要求我将NODE_ENVvariables设置为我想为我的客户端代码生成的目标环境。 这是非常奇怪的,因为我在构build服务器上设置一个环境variables,以反映实际代码在部署到的服务器上运行的环境。 所有这些让我觉得我在一般模式方面失去了一些东西。 相关信息: https://github.com/reactjs/redux/issues/1029 https://github.com/reactjs/redux/issues/1298

ESLint ES6 Redux全局必需意外的require();

嗨,大家好,是的,我有ESLint这个问题,不能灵魂靠我自己,这些商店是分开的每个环境,你可以看到截图,我怎么可以修复,使ESLint高兴,我要学习新事物? 🙁

反应路由器 – BrowserHistory.Push VS. ContextTypes

我正在完成一个高级的react / redux教程,并在教程中使用browserHistory.push链接到一个路线,而不是用于创build一个名为contextTypes的静态类variables的前一个方法,并设置它等于类似React.PropTypes.blah等等等等。 那和使用browserHistory.push有什么区别? 与设置上下文types相反,browserHistory.push似乎更容易作为程序重新路由。 谢谢!

如何避免客户端在rea-apollo SSR中重新获取?

我是新的graphql与react-appollo我想用reax apollo与redux也服务器端呈现每一件事情都很好我的应用程序正在工作,但问题是当我的应用程序渲染它实际上是再次调用API它不使用我呈现状态 服务器.js import express from 'express'; import bodyParser from 'body-parser'; import path from 'path'; import expressGraphQL from 'express-graphql'; import schema from './GraphQL/Schema'; import React from 'react'; import ReactDOMServer from 'react-dom/server' import { StaticRouter } from 'react-router'; import { ApolloClient, createNetworkInterface, ApolloProvider } from 'react-apollo'; import { getDataFromTree } from "react-apollo" import store from '../client/Redux/Store/store'; […]

在第二个动作调用中,React / Redux状态为空

对于React / Redux,我还是比较新的,所以如果这是一个简单的问题,但是我还没有find解决scheme,我很抱歉。 我有两个动作: // DESTINATIONS // ============================================== export const DESTINATION_REQUEST = 'DESTINATION_REQUEST'; export const DESTINATION_SUCCESS = 'DESTINATION_SUCCESS'; export const DESTINATION_FAILURE = 'DESTINATION_FAILURE'; export function loadDestination (params, query) { const state = params.state ? `/${params.state}` : ''; const region = params.region ? `/${params.region}` : ''; const area = params.area ? `/${params.area}` : ''; return (dispatch) […]