Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb React节点快速POST请求错误_Mongodb_Api_Express_Reactjs - Fatal编程技术网

Mongodb React节点快速POST请求错误

Mongodb React节点快速POST请求错误,mongodb,api,express,reactjs,Mongodb,Api,Express,Reactjs,我试图使用jqueryajax调用从react前端提取post请求。然而,我尝试的关于app.post的任何东西似乎都不会向数据库发送数据。如果有什么,我只是在“完成发送”上得到一个空的{} 代码: Server.js app.post('/api/users', function(req, res) { var name = req.body.name; var gender = req.body.gender; users.findOne({ users : users.na

我试图使用jqueryajax调用从react前端提取post请求。然而,我尝试的关于app.post的任何东西似乎都不会向数据库发送数据。如果有什么,我只是在“完成发送”上得到一个空的{}

代码: Server.js

app.post('/api/users', function(req, res) {
    var name = req.body.name;
    var gender = req.body.gender;
users.findOne({ users : users.name }, function(err, users) {
if (err) return next(err);
users.save(function(err) {
  if (err) return next(err);
  res.send({ message: users.name + ' has been added' });
});
 });
});
代码: models/model.js

var mongoose = require('mongoose');

var userSchema = new mongoose.Schema({
name: {
    first: String,
    last: String
},
    email: String,
    gender: String,
    school: String,
    updated_at: {type: Date, default: Date.now},
});

module.exports = mongoose.model('User', userSchema);
代码:

反应动作文件: app/action/userAction.js

class AddCharacterActions {
constructor() {
this.generateActions(
  'addCharacterSuccess',
  'addCharacterFail',
  'updateName',
  'updateGender',
  'invalidName',
  'invalidGender'
);
}

addCharacter(name, gender) {
$.ajax({
  type: 'POST',
  url: '/api/users',
  data: { name: name, gender: gender }
})
  .done((data) => {
    this.actions.addCharacterSuccess(data.message);
  })
  .fail((jqXhr) => {
    this.actions.addCharacterFail(jqXhr.responseJSON.message);
  });
  }
 }

export default alt.createActions(AddCharacterActions);
反应控制器:

app/controllers/userController.js

class AddCharacter extends React.Component {
constructor(props) {
super(props);
this.state = AddCharacterStore.getState();
this.onChange = this.onChange.bind(this);
}

componentDidMount() {
AddCharacterStore.listen(this.onChange);
}

componentWillUnmount() {
AddCharacterStore.unlisten(this.onChange);
}

onChange(state) {
this.setState(state);
}

handleSubmit(event) {
event.preventDefault();

var name = this.state.name.trim();
var gender = this.state.gender;

if (!name) {
  AddCharacterActions.invalidName();
  this.refs.nameTextField.getDOMNode().focus();
}

if (!gender) {
  AddCharacterActions.invalidGender();
}

if (name && gender) {
  AddCharacterActions.addCharacter(name, gender);
}
}

我似乎不知道我的错误发生在哪里,尽管我有一种潜移默化的怀疑,这是由于我的server.js app.post文件。谢谢

看起来您没有在Server.js中定义用户。除非在您发布的代码之外定义,否则您的
users.name
是未定义的。
users.findOne({users:users.name},
应该是
users.findOne({users:name},

您的服务器(server.js)在哪里运行,您得到的确切错误是什么,错误是在哪里触发的?server.js在根目录上运行,我没有收到错误,我在控制台上得到状态200,前端显示“成功”。