下面是我从网站上复制的示例代码。我正在尝试将信息保存到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'));
});
答案 0 :(得分:1)
如果您将架构更改为:
var Schema = new mongoose.Schema({
email: String,
name: String,
age: Number
});
我还建议将模型从“emp”更改为“user”。或者从“用户”到“emp”的所有变量。保持一致性更具可读性,可以节省您的时间。此外,您似乎错过了顶部的require('jade')
。
您可以通过电子邮件查询以查找用户。 Mongo会在插入时自动生成_id。
我希望这有用!