Tag: reactjs

链接npm库不在本地更新

我有以下的库https://github.com/codyc4321/react-data-components-updated 我把它安装在我的反应项目中,比如npm i ~/react-data-components-updated 现在运行我的节点服务器,不pipe我做什么,都不会有任何改变。 我看到旧的打印报告,我删除了,我的新的不来: console.log('data in dataSort() in dataReducer.js:'); console.log(state.data); 不显示。 我不断重新安装,像$ npm i ~/react-data-components-updated/并没有帮助。 我看到奇怪的错误影响这个位置: http://localhost:3001/__webpack_hmr 但现在我得到一个200的地址,它仍然没有更新。 如何在本地使用此库,并在发现更改时更新项目? 谢谢

redirect从Node.JS服务器路由不会呈现下一页

嗨,我有一个反应组件呈现这样的forms: <form onSubmit={this.onSubmit}> <!– a bunch of inputs here –> </form> 函数onSubmit()向axios发出post请求/results : handleSubmit(e) { var self = this; e.preventDefault(); const {value1, value 2, ….} = this.state; axios.post('/results', { key1 : value1, key2 : value2, etc. }).then(function(response) { if (errors) { self.setState({errors: response.data.errorMessage}); } }).catch(function(error){ console.log(error); }); } 我有一个在我的server.js的post请求的路由处理程序,它将表单中的数据插入到数据库中。 如果有错误,那么它会将这些数据发送回客户端,否则应该redirect到结果页面。 处理程序看起来像这样: app.post('/results', function(req, res, next) […]

重新加载页面时,用户的login状态在前端丢失

我使用express + mongodb + redis + mongoose作为我的后端提供api。 而且,使用react + react-router + redux作为我的前端。 身份validation是基于sessionId + cookie 。 对于前端,我使用react-router和onEnter挂钩进行身份validation控制。 当用户成功login时,我将后端的用户信息保存到redux存储中。 喜欢这个: const auth = { username: 'novaline', isLogin: true}; 一切都很好。 问题是: 当用户重新加载页面时,在REDX存储中caching的数据被擦除。 是的,我知道,REDEX商店有它的生命周期。 但是,当用户login时,如果他们重新加载页面,由于authentication数据从REDEX存储区中删除,前端将丢失用户信息。 他们的用户名将是未定义的,因为onEnter挂钩,他们将被redirect到login页面。 但是对于后端来说, session还是在redis 。 我知道jwt可以解决这个问题。 但对于我的情况。 用户重新加载页面时如何保持用户的login状态? PS我设置cookie httpOnly和Max-Age 。 所以客户端无法获取或设置cookie 。 __update:__ 我尝试将用户信息保存到localStorage。 所以,当用户login时,重新加载页面,我检查localStorage中是否有用户信息,如果是true,我将重置auth数据,如下所示: const auth = {username: localStorage.getItem('username'), isLogin: true}; 所以,我可以使用它来实现自动login和redirect到home […]

React / Express没有正确的路由链接

所以,我有一个反应的项目,除了快递工作正常。 我很难findMERN堆栈教程正确路由与快速。 我发现了一些SOpost,但没有在我的项目中工作。 当我将某人连接到某个反应路线时,我得到“未find”。 我一直在这个公平的周围乱搞,因此被评论的静态中间件。 Project Structurte Root package.json Server Routes index.js app.js package.json Client Build Public Src App.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var compression = require('compression') var session = require('express-session'); var index = require('./routes/index'); […]

在响应服务器端渲染时使用process.env

我有一个反应的应用程序,工作得很好,客户端,现在试图让它在服务器端工作。 我正在使用create-react-app样板: https : //github.com/facebookincubator/create-react-app 我遇到了一个问题,我在.env中存储了一些环境variables,但是在服务器上我无法访问这些variables。 所以像axios.get(process.env.API_URL + 'something')行将通过404,因为process.env.API_URL是undefined 。 这是我的理解.env是我应该使用这样的东西的文件。 我错了吗? 我应该使用另一种方法来存储常见的环境variables? 或者有什么方法让节点服务器识别这些值?

react-codemirror beforeChange事件

我正在使用react-codemirror节点模块,如下所示: <CodeMirror className={className} value={this.state.code} onBeforeChange={this.onBeforeChange} onChange={this.onChange} options={options} /> change事件工作正常,但我似乎无法与beforeChange事件挂钩。 任何人都知道我在做什么错了? 我已经在我的class级中宣布了处理程序如下: onBeforeChange(change) { console.log('calling beforeChange'); } onChange(newCode) { this.setState({ code: newCode }); }

“抓取失败的加载” – 在Postman中获取作品,但在Chrome和Safari中失败

更新:修正。 它看起来像请求回来了503(因为它应该),然后我的应用程序刷新并显示非错误消息:“取载失败加载”。 因为刷新,我只是没有看到回应。 我无法从本地托pipe的Create-React-App向Heroku托pipe节点服务器发出获取请求。 我的节点服务器启用了CORS。 如果我通过Postman发出一个POST请求,我得到一个合适的响应(503,因为目前没有数据库连接,所以数据没有被保存,如果我应该发回不同的响应,请告诉我)。 我的邮递员请求有'application/json'作为内容types,没有授权,以及{ "rating": "5", "zipcode": "0" }的正文。 但是,当我从我的React应用程序发出POST请求时,我的控制台中收到一条消息: “Fetch failed loading:OPTIONS” https://shielded-gorge-69158.herokuapp.com/feedback “。” 没有关联的错误,只有消息。 我的networking面板中没有关于请求的信息。 当我在localhost:3000(我的应用程序)到localhost:5000(我的服务器)上执行获取请求。 当我尝试向Heroku上托pipe的服务器发送请求时,它只会失败。 这是获取请求的样子: return fetch('https://shielded-gorge-69158.herokuapp.com/feedback', { method: 'POST', headers: { 'Content-type': 'application/json' }, body: JSON.stringify({ rating: userRating, zipcode: userZip }) }).then(res => { if (!res.ok) { throw new Error('Error:', res.statusText); } return res; }).catch(err => […]

节点Heroku部署找不到导出的Mongo架构

从我的节点应用程序的Heroku生成过程完成没有问题,但是当我尝试访问部署的网站Heroku日志显示以下错误: 2017-09-19T18:50:49.490021+00:00 app[web.1]: > simple-weather-app@0.0.0 start /app 2017-09-19T18:50:49.490022+00:00 app[web.1]: > node server.js 2017-09-19T18:50:50.665027+00:00 app[web.1]: module.js:487 2017-09-19T18:50:50.665042+00:00 app[web.1]: throw err; 2017-09-19T18:50:50.665043+00:00 app[web.1]: ^ 2017-09-19T18:50:50.665045+00:00 app[web.1]: Error: Cannot find module '../models/location' 2017-09-19T18:50:50.665046+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:485:15) 2017-09-19T18:50:50.665047+00:00 app[web.1]: at Module.require (module.js:513:17) 2017-09-19T18:50:50.665044+00:00 app[web.1]: 2017-09-19T18:50:50.665046+00:00 app[web.1]: at Function.Module._load (module.js:437:25) 2017-09-19T18:50:50.665048+00:00 app[web.1]: at require (internal/module.js:11:18) 2017-09-19T18:50:50.665049+00:00 app[web.1]: at Module._compile […]

没有推到与npm脚本heroku主“postinstall”

我有我安装的postinstall脚本,每当你做git push heroku master时候就会被调用。 但由于某种原因推动失败。 我在Windows上,必须使用cross-env软件包来处理一些脚本。 我想这可能会导致它失败,但我不确定。 这里是terminal输出的图像 : 图像 Herokulogging在底部 这里是脚本: "build": "cross-env NODE_ENV=production webpack && gulp", "postinstall": "npm run build" 这里是webpack和gulp文件: const webpack = require('webpack'); const path = require('path'); module.exports = { entry: { app: './src/app.js', }, output: { filename: 'public/build/bundle.js', sourceMapFilename: 'public/build/bundle.map', }, devtool: '#source-map', plugins: process.env.NODE_ENV === 'production' ? [ new […]

osx create-react-app不安装

我正在尝试使用terminal命令安装反应: npm install -g create-react-app 但它似乎并没有工作,我得到以下输出: 创build反应应用程序输出 有谁知道这里可能是什么问题?