【发布时间】:2015-05-03 22:36:06
【问题描述】:
我一生都无法弄清楚我在这里做错了什么简单的事情。我已经将用户模式缩小到一个属性,名称。当我将第一个发布到数据库时,一切都很好并且它被保存了。当我尝试用不同的名称保存另一个时,我得到了冲突。它一定是我想念的超级简单的东西,但我需要一双额外的眼睛来检查它。
这是我的架构 (user.js)
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
name: {
type: String
}
});
var User = mongoose.model('User', userSchema);
module.exports = userSchema;
这是我的帖子请求 (index.js)
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var app = express();
// db connection and models
var conn = require('./db');
var User = conn.model('User');
// middleware
app.use(bodyParser.urlencoded({ extended: false })); // parse application/x-www-form-urlencoded
app.use(bodyParser.json()); // parse application/json
// POST - 创建用户
app.post('/api/user', function (req, res) {
console.log(req.body);
User.create(req.body, function (err, user) {
if (err) {
if (err.code === 11000) {
return res.sendStatus(409); // conflict
} else {
return res.sendStatus(500); // server error
}
}
res.sendStatus(200); // ok - user created
});
});
app.listen(3000);
console.log('Listening...');
【问题讨论】:
-
你遇到了什么错误?
-
出于某种原因 - 我可以将一个文档添加到我设置的 MongoLab 数据库中。但是当我尝试发布另一个文档时,会发送 409 冲突状态。
标签: javascript mongodb express mongoose