猫鼬保存错误

时间:2016-08-07 20:31:19

标签: node.js mongodb mongoose

下面是我从网站上复制的示例代码。我正在尝试将信息保存到mongodb。我已经尝试过类似的堆栈溢出问题,但仍然无法解决它。

当我运行它并写入id时,name和age save方法失败但没有给出错误消息。原因是什么?在此先感谢您的帮助。

var express = require('express');
var http = require('http');
var path = require('path');
var mongoose = require('mongoose');
var bodyparser = require('body-parser');
var methodOverride = require('method-override');

var app = express();

// all environments
app.set('port', process.env.PORT || 4000);
app.set('views', __dirname + '/views');
app.set("view engine", 'jade');

app.use(bodyparser.json());
app.use(methodOverride());
//app.use(app.router);
app.use(express.static(__dirname + '../public'));
//app.use(express.static(path.join(__dirname, 'public')));

//app.get('/', function (req, res) {
//    res.render('index', {});
//});


app.get("/", function(req, res) {
res.sendFile(path.join(__dirname, "/index.html"));
});

mongoose.connect('mongodb://127.0.0.1/test');
mongoose.Promise = global.Promise;
var Schema = new mongoose.Schema({
_id    : String,
name: String,
age   : Number
});

var user = mongoose.model('emp', Schema);



app.get('/view', function(req, res){
user.find({}, function(err, docs){
    if(err) res.json(err);
    else    res.render('index', {users: docs});
    });
});


app.post('/new', function(req, res){
new user({
    _id    : req.body.email,
    name: req.body.name,
    age   : req.body.age
    }).save(function(err){
        if(err) res.json(err);
        else    res.send('Successfully inserted!');
        });
    });



var server = http.createServer(app).listen(app.get('port'), function(){
    console.log('Express server listening on port ' + app.get('port'));
});

1 个答案:

答案 0 :(得分:1)

如果您将架构更改为:

var Schema = new mongoose.Schema({
  email: String,
  name: String,
  age: Number
});

我还建议将模型从“emp”更改为“user”。或者从“用户”到“emp”的所有变量。保持一致性更具可读性,可以节省您的时间。此外,您似乎错过了顶部的require('jade')

您可以通过电子邮件查询以查找用户。 Mongo会在插入时自动生成_id。

我希望这有用!