2016-03-18 27 views
0

我想從使用Jquery Ajax調用的響應前端提交請求。然而,我對app.post的任何嘗試似乎都沒有實際發送數據到數據庫。如果有什麼事情我剛剛得到一個空{}的 「完成發送」Mongodb React節點傳遞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' }); 
}); 
}); 
}); 

代碼: 型號/ 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/
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); 

陣營控制器:

應用程序/控制器/ 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文件。謝謝

+1

你的服務器(server.js)在哪裏運行,你得到了什麼確切的錯誤以及錯誤是在哪裏觸發的? – piscator

+0

server.js在根上運行,我沒有收到錯誤,在控制檯上獲得狀態200,並在前端讀取「成功」。 – JFBadams

回答

0

看起來你不是在你的Server.js中定義用戶。除非在您發佈的代碼之外定義,否則您的users.name未定義。 users.findOne({ users : users.name },...應該是users.findOne({users: name}, ...