2016-08-07 24 views
1

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

当我运行它并写入id时,名称和年龄保存方法失败,但不会显示错误消息。原因是什么?预先感谢您的帮助。

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

我也建议改变从“EMP”的模式,以刚需“用户”:

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

,如果你改变你的架构以这个它的工作原理。或从“用户”到“emp”的所有变量。保持一致更具可读性,并且可以为您节省时间。此外,它看起来像你错过了:顶部require('jade')

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

我希望这有帮助!

+0

谢谢!要小心。 – emre01

+0

太棒了!很高兴我能帮上忙。 – Jebrial