Node.jsは初めてです。iPhoneクライアントへのサーバーバックエンドとして使用しています。JSONを使用してPOSTを呼び出しています:{名: "bob"、メール:bob@someemail.com}
node.jsコードは次のようになります(ExpressとMongooseを使用)。
var User = new Schema({
firstname : { type: String, required: true}
, email : { type: String, required: true, unique : true}
});
var User = mongoose.model('User', User);
そしてPOSTの場合、
app.post('/new/user', function(req, res){
// make a variable for the userData
var userData = {
firstname: req.body.firstname,
email: req.body.email
};
var user = new User(userData);
//try to save the user data
user.save(function(err) {
if (err) {
// if an error occurs, show it in console and send it back to the iPhone
console.log(err);
res.json(err);
}
else{
console.log('New user created');
}
});
res.end();
});
現在、同じメールアドレスで重複ユーザーを作成しようとしています。私はこれが私が電子メールに持っている「ユニークな」制約のためにエラーをスローすることを期待しています-それはそうします。
ただし、node.jsプロセスは、「エラー:送信後にヘッダーを設定できません」で終了します。
このようなシナリオでiPhoneクライアントにメッセージを送り返すことができるようにしたいと思います。たとえば、上記では、新しいユーザーの作成の結果(成功または失敗)を示すJSONをiPhoneに返送できるようにしたいと思います。
ありがとうございました!