修补命令土地NPM应用程序。它只有12行,我被卡住了。 一旦我进入我的承诺,应用程序继续运行而不是让我再次输入命令行(当然直到cmd + C)。不知道该怎么去谷歌找到自己的答案所以希望下面的代码就足够了!
#! /usr/bin/env node
var MongoClient = require('mongodb').MongoClient;
var dbUrl = 'mongodb://localhost:27017/building';
console.log(process.argv);
MongoClient.connect(dbUrl)
.then(function(db){
console.log('connected to db!');
// I guess there is some command to run here?
// Promise resolution of sorts?
return;
});
答案 0 :(得分:3)
在node.js中,如果计时器仍在运行,服务器仍在运行或套接字仍处于打开状态,则进程将继续自行运行。
即使某些上述项目仍在运行/打开,您也可以随时使用process.exit()
手动退出程序。
或者,你可以unref()
以上三个项中的任何一个来指示node.js在退出程序之前不要等待关闭该特定资源。
因此,在您使用数据库连接的特定情况下,您可以:
process.exit()
以手动退出该计划。.unref()
告诉node.js不要等待此资源。仅供参考,这是一个非常相似的问题:mongoclient.connection does not return cursor back on command line
答案 1 :(得分:1)
节点将继续运行,直到您明确断开与mongodb的连接。为此,请致电db.close()
。