node.js - 如何在 nodejs 的 promise 中完成执行?

标签 node.js mongodb npm

修补命令地 NPM 应用程序。它只有 12 行,我被卡住了。 一旦我做出 promise ,应用程序就会继续运行,而不是让我再次输入命令行(当然直到 cmd+C)。自己不确定要用 google 找到什么答案,所以希望下面的代码就足够了!

#! /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;
});

最佳答案

在 node.js 中,如果计时器仍在运行、服务器仍在运行或套接字仍处于打开状态,则进程将继续自行运行。

您可以随时使用 process.exit() 手动退出您的程序即使上述某些项目仍在运行/打开。

或者,您可以 unref() 上述三项中的任何一项来指示 node.js 在退出程序之前不要等待该特定资源关闭。

因此,在您使用数据库连接的特定情况下,您可以:

  1. 调用process.exit()手动退出程序。
  2. 关闭数据库连接,这样 node.js 就没有什么可等待的了
  3. 在数据库套接字上调用 .unref() 告诉 node.js 不要等待这个资源。

仅供引用,这是一个非常相似的问题:mongoclient.connection does not return cursor back on command line

关于node.js - 如何在 nodejs 的 promise 中完成执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34685860/

相关文章:

javascript - 将 NodeJS 变量发送到 JavaScript

node.js - Hapi 好如何在不使用控制台日志的情况下打印调试消息

java - MongoDB Java 驱动程序 Jackson Mapper MongoJack

node.js - 错误!无法读取 null 的属性 'path'

node.js - npm 不使用缓存

python - CSV 到嵌套(分层)JSON - 使用 Python 标记父项

python - MongoDB 在 mongoengine 中使用 OR 子句

node.js - vite.config.ts 中未找到 Vite 无法运行 vite 应用

npm - cleancss 命令不起作用

node.js - Mongodb node.js $out 聚合仅在调用 toArray() 时才有效