node.js、pg、postgresql 和插入查询(应用程序挂起)

2024-01-24

我有以下简单的节点应用程序用于将数据插入 postgres 数据库:

var pg = require('pg');
var dbUrl = 'tcp://user:psw@localhost:5432/test-db';

pg.connect(dbUrl, function(err, client, done) {
    for (var i = 0; i < 1000; i++) {
        client.query(
            'INSERT into post1 (title, body, created_at) VALUES($1, $2, $3) RETURNING id', 
            ['title', 'long... body...', new Date()], 
            function(err, result) {
                if (err) {
                    console.log(err);
                } else {
                    console.log('row inserted with id: ' + result.rows[0].id);
                }

            });
    }
});

在终端中运行 Node app.js 后,它会将 1000 行插入数据库,然后应用程序挂起,并且不会终止。我做错了什么?我查看了 pg 模块示例,但没有发现我正在做任何不同的事情......


我错过了对 client.end() 的调用;现在应用程序正确退出:

pg.connect(dbUrl, function(err, client, done) {
    var i = 0, count = 0; 
    for (i = 0; i < 1000; i++) {
        client.query(
            'INSERT into post1 (title, body, created_at) VALUES($1, $2, $3) RETURNING id', 
            ['title', 'long... body...', new Date()], 
            function(err, result) {
                if (err) {
                    console.log(err);
                } else {
                    console.log('row inserted with id: ' + result.rows[0].id);
                }

                count++;
                console.log('count = ' + count);
                if (count == 1000) {
                    console.log('Client will end now!!!');
                    client.end();
                }
            });        
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

node.js、pg、postgresql 和插入查询(应用程序挂起) 的相关文章

随机推荐

  • JHipster 按实体字段搜索实体

    我有锦标赛实体 他与奖项实体具有 OneToOne 关系 获奖实体已备案 金额 因此 如果我想搜索在两个值之间有奖品的锦标赛 我该如何使用 JHipster QueryService 来做到这一点 基于您正在使用 QueryService
  • 为什么属性目标“typevar”没有记录?

    众所周知 在 C 中可以指定target自定义属性规范 如示例所示 method SomeDecoration return SomeOtherMark int MyMethod 目标 在哪里method and return 帮助指定属性
  • 等待函数到底如何针对条件变量工作

    背景 我对条件变量如何与共享数据的并发访问结合使用的理解有些困惑 以下是描述我当前问题的伪代码 Thread 1 Producer void cakeMaker lock some lock while number of cakes MA
  • 如何修复 .net 标准 2.0 项目中的“无法加载文件或程序集 System.IO.Packaging,版本=4.0.3.0”

    我正在尝试处理一个word文档 为此 我安装了 DocumentFormat OpenXml NuGet 包 它安装了以下依赖项 文档格式 OpenXml 系统 IO 封装 4 5 0 系统 运行时 序列化 一旦它到达我正在处理Word文档
  • C++ 转换重载函数时遇到问题:<未解析的重载函数类型>

    我在超类中有一些函数 旨在将字符串与内部函数相关联 class Base typedef std function
  • 如何从字符串输入中删除逗号

    我正在开发一个使用 MIPS 本机指令的程序 该程序将允许用户输入三个十进制数字作为空终止字符串 每个数字不能超过六位数字 如果用户输入逗号 例如 123 456 则从内存中删除逗号 第一个数字存储在内存地址 0x10000000 中 第二
  • 如何在 Symfony 中添加新的翻译域

    我正在使用 symfony 在我的包中我需要创建一些翻译 但我宁愿在与 消息 不同的域中进行操作 就像 FOS User Bundle 所做的那样 他们使用 FOSUserBundle 域 所以我用我的翻译创建了一个 MyBundle en
  • ReactNative Flatlist - Flatlist 项的优化性能

    当我们有大数据时如何优化 Flatlist 的性能 我的列表既有图像又有文字描述 我想找到一种方法来提高列表的性能并删除从缓存列表中加载的额外图像以及让清单不重 FlatList 组件应该是一个高性能的解决方案 用于在应用程序中显示大量数据
  • Java框架[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近 我遇到了许多用 Java 创建 Web 应用程序的不同框架 例如 Play Wicket Gra
  • Xcode 中的 Boost 库编译器错误

    如何在 Xcode 中正确使用 boost 我正在尝试使用 boost 库编译一个项目 该示例项目在终端中使用 GCC 12 可以正常编译 但我无法在 Xcode 中编译它 编译器错误主要是 boost 库中的命名空间问题 例如 boost
  • -[UITextField isFirstResponder] 即使字段当前正在编辑也会返回 false

    在我的视图控制器中 viewDidLoad方法 我调用 myTextField becomeFirstResponder 这就像一个魅力 打开键盘 myTextField 获得焦点 我有一个带有目标操作的按钮 该操作位于同一控制器中 用于检
  • Bash:如何将这两个 if 语句压缩为一个

    我是 Bash 和脚本新手 我想找到一种方法将这两个语句合并为 1 该脚本的作用是检查两个文件 D1 和 D2 是否是同一文件 如果不是 则检查它们的内容是否相同 if D1 ef D2 then echo not the same fil
  • 在 Electron 中操作 DOM

    在电子应用程序中操作 DOM 的最佳方法是什么 我使用 ipc 和 webcontents 从文档中制作了一些教程 但没有运气 我的应用程序非常简单 我只想像控制台一样使用网络并显示来自多个同步函数 主过程 结果的消息 渲染过程 我用真实的
  • 如何制作“查看密码”?

    我正在制作密码识别系统 我想做一个 查看密码 功能 可以切换隐藏到显示密码 我不知道如何实现这个功能 这是我的简短代码 from tkinter import root Tk Entry box to get password from u
  • UICollectionView - 滚动到第一个单元格

    我正在使用 UICollectionView 单击按钮后需要滚动到第一个单元格 该按钮位于我的集合视图中的 大 标题部分 单击它时 我需要滚动到位于该按钮下方的第一个单元格 我创建了此按钮的操作 但我不知道如何滚动到第一个 UICollec
  • Sql事务的并发处理

    假设我要使用 ASP NET 和 SQL Server 2005 启动一个项目 我必须设计该应用程序的并发要求 我计划在每个表中添加一个时间戳列 在更新表时 我将检查时间戳列是否与所选的相同 这种方法足够吗 或者这种方法在任何情况下都有缺点
  • 如何将数组转换为元组?

    我只想在 Swift 中将数组转换为元组 像下面这样 gt gt gt myArray 1 2 3 4 5 gt gt gt mytuple tuple myArray gt gt gt mytuple 1 2 3 4 5 最简单的方法是什
  • Mapstruct 没有更新生成的源文件中的 getter 和 setter

    我有一个具有属性的实体 我曾经这样写过 私人龙重症监护室 我正在使用地图结构 这是我针对所述实体的映射器 Mapper componentModel spring public interface ProtectionQueryMapper
  • 拖放CDK:在起始列表中继续显示拖动的元素

    我正在使用 cdk Drag and Drop 因为我需要它来创建工作 POC 我从这个开始code https stackblitz com angular nlpedgvrmbg file app 2Fcdk drag drop con
  • node.js、pg、postgresql 和插入查询(应用程序挂起)

    我有以下简单的节点应用程序用于将数据插入 postgres 数据库 var pg require pg var dbUrl tcp user psw localhost 5432 test db pg connect dbUrl funct