反应形式不;t更新mongo数据库
React form doesn't update mongo database
我正在用React和Node.js创建一个短篇小说/博客网站。我有一个Node路由,可以将新故事发布到我的mongo数据库。该路由与超级代理cli一起创建一个新的故事,并且它通过了所有测试,所以我知道问题不在于路由本身。
该表单在页面上呈现得很好,但无论您点击回车键还是单击,它都不会将数据提交到数据库。
以下是表单组件的样子:
'use strict';
var React = require('react');
module.exports = React.createClass({
submitHandler: function (event) {
event.preventDefault();
var author = React.findDOMNode(this.refs.author).value.trim();
var categories = React.findDOMNode(this.refs.categories).value.trim();
var storyTitle = React.findDOMNode(this.refs.storyTitle).value.trim();
var storyText = React.findDOMNode(this.refs.storyText).value.trim();
this.props.submit({author: author, categories: categories, storyTitle: storyTitle, storyText: storyText});
},
render: function () {
return(
<form onSubmit={this.submitHandler}>
<input type="checkbox" ref="categories" value="fiction">Fiction</input>
<input type="checkbox" ref="categories" value="CreepyPasta">CreepyPasta</input>
<input type="checkbox" ref="categories" value="Horror">Horror</input>
<input type="checkbox" ref="categories" value="Monsters">Monsters</input>
<br />
<input ref="storyTitle" placeholder="Title" />
<br />
<input ref="author" placeholder="Author" />
<br />
<input ref="storyText" placeholder="Add your story here"/>
<br />
<input type="submit" value="Save Story"></input>
</form>
)
}
});
这是表单的视图:
'use strict';
var React = require('react');
var StoryForm = require('../add-story-form.jsx');
var request = require('superagent');
module.exports = React.createClass({
getInitialState: function () {
return {title: 'Add Your Own Story'};
},
submit: function (storyObj) {
request
.post('/api/stories')
.send(storyObj)
.end(function (err, res) {
if (err) {
return console.log(err);
}
}.bind(this));
},
render: function () {
return (
<main>
<h1>{this.state.title}</h1>
<StoryForm submit={this.submit}/>
</main>
)
}
});
最后,这里是我的主要React客户端组件,它执行我的React路由:
'use strict';
var React = require('react');
var Router = require('react-router-component');
var Locations = Router.Locations;
var Location = Router.Location;
var MainPage = require('./components/views/main-page.jsx');
var CategoryPage = require('./components/views/category-page.jsx');
var FormPage = require('./components/views/story-form-page.jsx');
var App = React.createClass({
render: function () {
return (
<Locations hash>
<Location path="/" handler={MainPage} />
<Location path="/stories/:category" handler={CategoryPage} />
<Location path="/addstory" handler={FormPage} />
</Locations>
)
}
})
React.render(<App />, document.body)
请告诉我更多的信息是否会有所帮助。你可以在我的github repo 上看到这个分支的完整项目
submit: function (storyObj) {
request
.post('/api/stories')
.send(storyObj)
.end(function (err, res) {
if (err) {
return console.log(err);
}
}.bind(this));
},
使用jQuery ajax解决这个问题可能很容易:
submit: function (storyObj) {
$.post('/api/stories',storyObj, function () {
console.log('success')
})
},
相关文章:
- Javascript循环不会自我更新
- 在不重构Mongo数据库的情况下,更新嵌入数组中的具有给定ID的对象
- 如何在更新mongo文档时使用变量
- 更新int数组会在Mongo-shell中转换为双数组
- Mongo-shell游标:更新后的文档再次到达游标
- 来自 Mongo Collection 的条目更新于 24 小时
- 节点 + MONGO:更新记录需要回调
- Mongo forEach 函数仅在第一行执行更新
- Mongo DB更新已过期
- 如何使用变量作为键来更新mongo集合
- 如何在_id数组中更新所有Mongo文档?
- 不能用动态数组id从流星表单更新mongo值
- 通过mongoose更新mongo内嵌套数组中的特定值
- 反应形式不;t更新mongo数据库
- Mongo/Meteor游标更新事件
- Mongo collection在客户端没有更新
- 从angular中更新mongo数组字段
- Mongo客户端没有更新多个记录
- 评级未按预期在Mongo中更新
- Meteor/Mongo:查找和更新集合中的特定元素