gpt4 book ai didi

node.js - 如何获得一个 grunt 任务来保存一个新的简单 mongodb 文档?

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:55 26 4
gpt4 key购买 nike

我在同时使用 mongoose 和自定义 grunt 任务时遇到问题。我想要做的就是通过获取我在命令行中提供的任务参数并将它们处理/保存到数据库来创建一个行为类似于简单的 put 请求的任务。但是,当我添加它后希望在数据库中找到它时..我在任何地方都找不到它。

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

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

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 中输入以下内容时: grunt addcompany:名称:电子邮件:描述:more_stuffCLI 返回:

  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
}

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

感谢您的帮助!

最佳答案

试试这个:

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);
});

});

关于node.js - 如何获得一个 grunt 任务来保存一个新的简单 mongodb 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22235826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com