- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有人可以帮我在将两个模型添加到数据库后关闭数据库吗?我尝试过阅读
http://howtonode.org/intro-to-jake
Node.js and Jake - How to call system commands synchronously within a task?
以及 github 自述文件: https://github.com/mde/jake
但似乎还是想不通。这是自述文件的摘录
所有任务运行后进行清理, jack “完成”事件基本的“jake”对象是一个EventEmitter,并在运行所有任务后触发“complete”事件。当任务启动一个保持 Node 事件循环运行的进程(例如数据库连接)时,这有时很有用。如果您知道要在所有任务完成后停止正在运行的 Node 进程,您可以为 'complete' 事件设置一个监听器,如下所示:
jake.addListener('complete', function () {
process.exit();
});
就像现在一样,它在打开连接之前就将其关闭。
// db connect
var db = require('./schema');
desc('Seed MongoDB with initial data');
task('seed', [], function () {
//******* Populate the database
var user1 = new db.userModel({ email: 'x@x.com', password: 'x', phone: x });
user1.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('user: '+user1.email +' saved');
}
});
var user2 = new db.userModel({ email: 'x', password: 'x', phone: x });
user2.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('user: '+user2.email +' saved');
}
});
db.mongoose.connection.close();
console.log('Closed mongodb connection');
});
编辑:我能够使用 parseq 模块中的并行流完成我想要的任务。
par(
function() {
fs.readFile("file1", this);
},
function() {
fs.readFile("file2", this);
},
function done(err, results) {
...
}
);
编辑2:所以我真的很感谢所有的帮助。我还看到你是 parseq 的维护者:)。谢谢!我仍在努力解决最后一点,并且我的函数挂起并且在函数 5 完成时没有调用 done() 。我确信我错误地称呼“这个”。有什么建议吗?
seq(
function f1() {
var user = new db.userModel({ email: 'x'
, password: 'x'
, phone: x });
user.save(this);
},
function f2(err, value) {
var user = new db.userModel({ email: 'x'
, password: 'x'
, phone: x });
user.save(this);
},
function f3(err, value) {
var merchant = new db.merchantModel({ name: 'x'
, logourl: 'x' });
merchant.save(this);
},
function f4(err, value) {
var merchant = new db.merchantModel({ name: 'x'
, logourl: 'x' });
merchant.save(this);
},
function f5(err, value) {
db.merchantModel.findOne({ name: 'x' }, function(err, merchant) {
var coupon = new db.couponModel({ merchant_id: merchant.id
, name: 'x'
, imageurl: 'x'
, expiration: Date.UTC(2013,3,15) });
//, expiration: new Date(2013,3,15) }); //alternate date creation method
coupon.save(this);
});
},
function done(err) {
if(err) {
console.log(err);
} else {
console.log('successfully seeded db');
}
db.mongoose.connection.close();
console.log('Closed mongodb connection');
}
);
最佳答案
在两个保存函数完成后,您需要调用db.mongoose.connection.close
。最简单的方法是嵌套保存调用(但不是最漂亮的)。
var user1 = new db.userModel({ email: 'x@x.com', password: 'x', phone: x });
user1.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('user: '+user1.email +' saved');
}
var user2 = new db.userModel({ email: 'x', password: 'x', phone: x });
user2.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('user: '+user2.email +' saved');
}
db.mongoose.connection.close();
console.log('Closed mongodb connection');
});
});
然后您应该开始研究流程控制库以使您的代码更简单。
使用parseq同样的事情:
var seq = require("parseq").seq;
seq(
function f1() {
var user1 = new db.userModel({ email: 'x@x.com', password: 'x', phone: x });
user1.save(this);
}, function f2(err, value) {
var user2 = new db.userModel({ email: 'x', password: 'x', phone: x });
user2.save(this);
}, function done(err) {
// check err here
console.log('Closed mongodb connection');
}
);
要选择性地忽略某些错误,函数如下所示:
function f1() {
var self = this;
var user1 = new db.userModel({ email: 'x@x.com', password: 'x', phone: x });
user1.save(function(err) {
if (err === SOMETHING_TO_IGNORE) {
self(null);
else {
self(err);
}
});
}
关于node.js - 同步 Jake Node.js 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14717119/
我正在一个主要是 javascript 的项目上测试 Jake 作为 Rake 的可能替代品。现在我发现奇怪的一件事是完成事件在事件完成之前被触发。 这是一个例子: task('some_task_1
我正在使用 Jake Wharton 的示例来显示 viewpager 指示器。 www.viewpagerindicator.com 我正在使用捕捉圆指示器。 谁能告诉我如何增加圆圈之间的宽度? 应
版本:从 Julia v0.4 开始(我使用 0.5.0-dev+433 (2015-09-29 15:39 UTC)) 引用:Jake Bolewski: Staged programming in
我收到此错误 java.lang.IllegalArgumentException:键必须匹配正则表达式 [a-z0-9_-]{1,64}:“mision_imposible_–_rogue_nati
我有一个包含以下代码的 test.js 文件: jake = require('jake'); var t = new jake.Task("testtask", function(params) {
我有这个 jake 任务来运行我的所有测试: desc('Run all tests') task('test', {async: true}, function(args) { process.
Jake 任务执行长时间运行的系统命令。另一个任务取决于第一个任务在开始之前完全完成。 'child_process' 的 'exec' 函数异步执行系统命令,使得第二个任务可以在第一个任务完成之前开
我可以使用以下 coffeescript 行启动 IIS express 以运行我的 mvc 3 应用程序: iisex = jake.createExec(['iisexpress /path:'
我将自定义主题应用到我使用 Jake Wharton 的 greate ViewPagerIndicator 库的应用程序。不幸的是,该主题要求第一个和最后一个 Tab 指示器具有圆形的外端。 应该是
在我的应用程序中,我正在使用 Jake Wharton 的 TitlePageIndicator。我想知道我们是否可以将字体设置为 TitlepagerIndicator。 这是xml, 在主要 A
有人可以帮我在将两个模型添加到数据库后关闭数据库吗?我尝试过阅读 http://howtonode.org/intro-to-jake Node.js and Jake - How to call s
我正在使用 Jake Wharton 的 viewpager 指示器,我想将其宽度更改为特定值。可以在示例中找到的常见 xml 文件是: Ta
我有一个简单的 hello world jake 文件,它给出了一个错误: victors-macbook-pro:投票给 Victor$ jake -f jakefile 异步 (在/Users/V
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
Jake Wharton 发表了精彩的演讲,他提出了一些巧妙的方法来改进我们的 UI 测试,方法是从测试中抽象出我们如何执行 UI 的细节:https://news.realm.io/news/kau
我是 Jake Wharthon 的库的 super 粉丝 - ActionBarSherlock、NineOldAndroids 和 ViewPagerIndicator 我的应用支持 Androi
我希望为我的迁移提供生成器,例如: jake migration:create jake migration:remove jake migration:execute 代码是 namespac
我想在 crontab 上为我的 node js 项目执行一个 jake 任务。我学会了在 Node js 中创建和运行 jake。我还学会了使用 crontab。如果我添加以下内容来创建 cronj
我正在关注 an incredibly detailed Parsec tutorial .但是,一些示例无法按预期工作,例如, ghci> parseWithWhitespace simpleExp
我附上图片以更详细地解释我的问题。还附加了 android list 。 android:theme="@style/Theme.PageIndicato
我是一名优秀的程序员,十分优秀!