你如何得到一个咕task任务来保存一个新的简单的MongoDB文件?

我一起使用mongoose和自定义的咕噜声任务有问题。 我所要做的就是创build一个类似于简单放置请求的任务,通过在命令行中给予任务的参数并将其处理/保存到数据库中。 但是,当我希望在添加后在数据库中find它时,我无法在任何地方find它。

目标是创build一个新的公司,并保存4个简单的参数,从“grunt addcompany:a:b:c:d”命令中保存。

这里是“公司”模式(我保持它非常基本):

var mongoose = require('mongoose'), Schema = mongoose.Schema; var Company = new Schema({ name: String, email: String, info: String, also: String }); module.exports = mongoose.model('Companies', Company); 

这是我的Gruntfile.js的顶部:

 var schemaCompany = require('./models/company'), mongoose = require('mongoose'), db = mongoose.connection, Company = mongoose.model('Companies', schemaCompany); 

这是任务:

 grunt.registerTask('addcompany', 'add a company', function(n,e,i,a) { var done = this.async(); mongoose.connect('mongodb://localhost/app-test'); db.on('open', function () { var co = new Company({ name: n, email: e, info: i, also: a }); co.save(function (err) { if (err) return handleError(err); console.log('success!'); }); console.log(co); db.close(); }); }); 

当我在CLI中input时:grunt addcompany:name:email:description:more_stuff CLI返回:

  Running "addcompany:name:email:description:more_stuff" (addcompany) task { "name": "name", "email": "email", "info": "description", "also": "more_stuff", "_id" : ObjectID(" ~object id here~ "), "__v" : 0 } 

虽然它创build一个对象ID,它永远不会保存在任何地方。 应用testing数据库中的公司集合中没有任何显示。 我错过了什么?

感谢您的帮助!

尝试这个:

 db.on('open', function () { var co = new Company({ name: n, email: e, info: i, also: a }); co.save(function (err) { // log the doc console.log(co); // log the error console.log(err); if (err) return handleError(err); console.log('success!'); // close the database after 'co' is saved. db.close(); done(true); }); 

});