Mongoose报告成功写作,数据库中没有任何东西

mongoose成功callback正在运行,但没有出现在我的数据库,当我通过控制台与Mongo交互。

任何人都可以帮助为什么什么都没有出现在数据库?

app.js

var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path') , mongoose = require('mongoose'); var app = express(); var TimesheetsController = require(__dirname + '/controllers/timesheets'); var UsersController = require(__dirname + '/controllers/users'); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(app.router); app.use(require('stylus').middleware(__dirname + '/public')); app.use(express.static(path.join(__dirname, 'public'))); }); app.configure('development', function(){ app.use(express.errorHandler()); }); app.get('/', routes.index); app.get('/timesheets', TimesheetsController.list); app.post('/timesheets', TimesheetsController.add); app.get('/users', UsersController.list) http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); 

timesheet.js控制器

 var TimesheetsModel = require('../models/timesheets'); var TimesheetsController = { list : function(req, res){ TimesheetsModel.listTimesheetsByUser(function(){res.render('timesheets/index', { title: 'Timesheets',timesheets: {} });}); }, add : function(req, res){ TimesheetsModel.newTimesheet(10, req.body, function(err){ if(err){ res.json({'message':'failed.'}) }else{ res.json({'message':'success!'}) }; }); } } module.exports = TimesheetsController; 

timesheet.js模型

 var mongoose = require('mongoose') , Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var db = mongoose.createConnection('localhost', 'timetracker'); var TimesheetSchema = mongoose.Schema({ 'date': Date, 'lines': [ {any: Schema.Types.Mixed} ], 'user_id': ObjectId }); var Timesheet = db.model('Timesheet', TimesheetSchema) // Timesheet.virtual('id') // .get(function() { // return this._id.toHexString(); // }); // Timesheet.pre('save', function(next) { // this.keywords = extractKeywords(this.data); // next(); // }); mongoose.model('Timesheet', Timesheet); TimesheetsModel = { listTimesheetsByUser : function(callback){ console.log('listing timesheets'); callback(); }, newTimesheet : function(user,data,callback){ var date = data.date; var lines = data.lines; var u = user; console.log(lines); var ts = new Timesheet({ "date": Date.now(),"lines":lines, "user_id":u }); ts.save(function (err) { if (err) callback(err); console.log('adding new timesheet'); //this is output callback(); }); } }; module.exports = TimesheetsModel 

几个问题 – 我从你的代码猜测,你得到一个错误。 你需要解决一些事情:

a)callback与callback:

  if (err) return callback(err); console.log('adding new timesheet'); //this is output callback(); 

b)我怀疑这个错误与你传递'10'作为用户ID有关。 你的模式被设置为想要一个ObjectId(24个字符),所以会失败。