在express js路由中调用异步函数的正确方法

2024-01-12

我现在就是这样做的。但试图看看是否有正确的或其他的方法可以做到这一点。

async function getmanual_vars(req, res,ajax){
    var return_data = {};
    let db = await mongo_client.connect(mongo_url);

    let db_data = await db.collection('data').find({ created_by_user_id: req.cookies.user_id}).toArray();

    // more codes inside //

    res.json({ success: true});
}

router.post('/manual_vars', check_auth,function(req, res, next) {
    getmanual_vars(req, res,0);
});

你可以这样做:

async function getmanual_vars(req, res) {
  try {
    var return_data = {};
    let db = await mongo_client.connect(mongo_url);

    let db_data = await db.collection('data').find({
      created_by_user_id: req.cookies.user_id
    }).toArray();

    // more codes inside //

    res.json({ success: true});
  } catch (error) {
    res.status(500).json({ success: false, error: error });
  }
}

router.post('/manual_vars', check_auth, getmanual_vars);

这应该可以捕获异步函数中可能出现的错误和异常以及状态500.

因为这已经是一个接受的函数req and res,我们可以将函数本身传递给路由器,而不必围绕它创建一个包装器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在express js路由中调用异步函数的正确方法 的相关文章

  • 我怎样才能摆脱错误:无法在 Heroku 上找到模块“模型”

    我在 Heroku 上不断收到此错误 错误 找不到模块 模型 我正在使用 Node JS 我在用着这个 Node JS 项目 https github com gravityonmars nodejs starter 我从 Heroku 复
  • Node + Express 与静态 HTML。如何将所有请求路由到index.html?

    我正在开发一个单页 Web 应用程序 使用 Node Express 和 Handlebars 进行模板化 目前 index html 的一切都运行良好 它由一个非常标准的 server js 文件提供 var express requir
  • express.io VS express + socket.io 有什么用处?

    我在这里发现了 socket io 和聊天示例 https github com rauchg chat example blob master index js https github com rauchg chat example b
  • 如何获取可用的猫鼬鉴别器列表?

    假设您有一个用户方案 您可以使用它来创建名为 用户 的基本模型 然后对于用户角色 您可以使用 mongoose 判别器来创建名为 Admin Employee 和 Client 的继承模型 有没有一种方法可以以编程方式确定用户模型有多少可用
  • 以html格式显示npm审计漏洞

    有没有办法将 npm 审计报告显示为 html 页面 目前我只能看到使用以下命令以 json 格式输出报告的选项 npm audit json 我写了一个NPM包 https www npmjs com package npm audit
  • Typescript 和 Mongoose - “this”在实例方法中不可用

    我目前正在将我的 API 从 JS 转换为 TS 然而 我在猫鼬和打字稿方面遇到了一些困难 具体来说 this在我的实例方法中不可用 My code AccountSchema methods comparePassword async f
  • 具有独立 Node.js 服务器的虚拟主机

    目前有没有一种方法可以使用node js服务器进行虚拟托管 即在一个IP下托管多个域 当然 你可以使用bouncy https github com substack bouncy or 节点 http 代理 https github co
  • 如何模拟“焦点”和“打字”事件

    尝试模拟 onfocus 和打字事件 但它不起作用 Sub Login MyLogin MyPass Dim IEapp As InternetExplorer Dim IeDoc As Object Dim ieTable As Obje
  • Nodejs - 处理和发送多部分请求,

    我的应用程序在 Nodejs 服务器上运行 Node Js 还充当来自应用程序的请求的中间件 代理 因此 从浏览器开始 所有 REST 调用都会转到 NodeJs 然后转到 Java API 我发现处理多部分表单数据的请求时出现问题 我在
  • Angular2 + Laravel 与实时和 WebSockets

    我构建了一个应用程序 并计划与 Angular 2 和 laravel 进行实时战斗 例如 你按下 攻击 按钮 你的对手就会实时看到他的生命在下降 我的应用程序构建有 前端 角2 Backend PHP Laravel 5 2 现在我正在寻
  • Typescript 找不到模块

    我在 Typescript 的一个文件 upload ts 中有一个导出的模块 我无法在没有错误的情况下导入到另一个文件 application ts 中 另外 我无法导入 ExpressJS 这是Upload ts
  • 节点:使用 Nodemailer 的直通流

    我正在使用officegen 生成一个Word 文档 然后计划使用Nodemailer 和Sendgrid 将其附加到电子邮件中 Officegen 输出一个流 但我更愿意将其直接传递到附件 而不是在本地保存 Word 文档然后附加它 Ge
  • 如何使用 Nodejs 创建 Excel 文件?

    我是一名 Nodejs 程序员 现在我有一个数据表 我想将其保存为 Excel 文件格式 我该怎么做呢 我找到了一些 Node 库 但其中大多数是 Excel 解析器而不是 Excel 编写器 我使用的是 Linux 服务器 因此需要一些可
  • ExpressJS - DELETE 请求后 res.redirect

    我一直在寻找如何执行此操作 我正在尝试在发出删除请求后重定向 这是我正在使用的代码没有重定向 exports remove function req res var postId req params id Post remove id p
  • Nodejs 一个接一个地运行异步函数

    我是 JS nodejs 的新手 所以如果我不能提出切中要害的问题 请原谅我 所以基本上 如果我有两个异步函数 async function init async function main 如何确保在 init 完成其异步请求后调用 ma
  • 如何在 Node-Red 中的 oneditsave 之后在下拉列表中显示先前选择的值(动态)?

    我有一个自定义节点 其中包含两个彼此独立的下拉菜单 因此 第二个下拉列表值会根据第一个下拉列表中选择的值发生变化 我现在尝试的是 用户拖动我的自定义节点 iotinput 从两个拖放中选择值 按下并单击 完成 他再次拖动另一个自定义节点 i
  • 使用 Node.js 构建网站的最佳实践

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想知道如何使用 Node js 从头开始 开发一个网站 我明白我怎么能possibly
  • 如何使用 Playwright 使用选择器查找框架 (iframe)

    我有一个小问题 无法找到使用 Microsoft Playwright 框架的答案 根据您可以使用以下代码获取 iframe const frame page frame frame login 但是如何使用选择器来查找 iframe 并与
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • Node.js 中的异步或步骤

    我无法让我的异步代码与 node js 一起使用 尝试异步和步骤库 代码仅返回第一个函数 似乎没有执行其余函数 我究竟做错了什么 thanks var step require step step function f1 console l

随机推荐

  • 如何解决 crypto.getRandomValues() 不支持的问题?

    切换到涡轮机组后 我出现以下错误 https next auth js org errors jwt session error https next auth js org errors jwt session error不支持 cryp
  • Java 泛型和超类型标记

    我试图将以下三种方法变成一个通用解决方案 我尝试了一些可以编译但在运行时表现不佳的想法 public static List
  • Xamarin iOS 调试器未命中断点

    昨天早上 当我开始开发 Xamarin iOS 应用程序时 我的调试器停止了工作 我可以放置断点 但是一旦应用程序启动 断点就会像红色甜甜圈一样变得空心 我已经多次重建 清理项目 我还擦除了 obj bin 文件夹 但似乎没有任何效果 我无
  • android 4.0,操作栏上的文本永远不会显示

    我正在尝试使用 google 的新 api 特别是操作栏 当构建设置为 api 10 时 如果我按下菜单按钮 我会看到漂亮的菜单选项 每个选项都有图片和图标 使用 api 14 时 无论我尝试什么 它总是将图标放在操作栏中 没有任何文本 我
  • 多个阻塞队列,单个消费者

    我有多个包含要发送的消息的 BlockingQueue 消费者是否可能比队列少 我不想循环队列并继续轮询它们 忙于等待 并且我不想每个队列都有一个线程 相反 我希望有一个线程在任何队列上有可用消息时被唤醒 您可以做的一个技巧是拥有一个队列
  • ANTLR如何在输入结束时检测垃圾数据

    当使用 ANTLR 编写的语法时 解析器可以正确识别输入流中的数据 但如果我在输入末尾有一些垃圾文本 不应该由语法解析 解析器不会抱怨 我想这种行为是可以的 我的意思是解析器完成了它的工作并解析了我所说的它应该解析的任何内容 但是有什么技巧
  • 将现有的 defaultdict 输出为耀斑树状图适当的 JSON 格式?

    我有一个defaultdict list 我用过simplejson dumps my defaultdict 为了输出defaultdict转换为 JSON 格式 我正在使用树形图的 HTML 代码http bl ocks org mbo
  • 查找“丢失”的变量(循环引用)

    所以 这是一个有点简单的情况 但如果我设置一个像这样的循环引用 usr bin perl use strict use warnings my thing my otherthing thing gt otherthing otherthi
  • 创建具有 COUNT 个 ms-access 的表

    我有一个数据库 我想创建一个带有 COUNT 函数的表 是否可以 我有 3 个现有表 Member Feedback Attendance 在反馈表中 2 列 Class ID Likes Class ID 与出勤情况相关 因为每个成员参加
  • 在 C# 中将参数传递给 DownloadStringCompletedEventHandler

    我正在 WP7 中开发应用程序 我想将一个列表框作为参数传递给 client DownloadStringCompleted 方法 我的代码如下所示 WebClient client new WebClient client Downloa
  • 如何在alpine:3.8中安装Nodejs v13.0.1?

    我正在编写一个 Dockerfile 来 dockerize php nodejs 应用程序 所以我从基于 alpine 3 8 的 php 7 2 13 fpm alpine 图像开始 作为研究 我发现我可以通过命令添加最新的 alpin
  • Python 中是否有一个函数可以生成给定字母表上长度为 n 的所有字符串?

    我需要一个函数generateAllStrings n alphabet 做这样的事情 generateAllStrings 4 a b gt gt gt aaaa aaab aaba aabb abaa bbba bbbb 换句话说 ge
  • 如何在 Tkinter 窗口中打开网站?

    我正在尝试使用 Tkinter 构建一个简单的网络浏览器 我想知道如何在 Tkinter Python 中打开网站 你不能轻易地做你想做的事 Tkinter 无法渲染 html 您必须自己解析 HTML CSS 和 Javascript 并
  • 如何在两个不同的服务器之间移动 perforce 仓库,以便复制修订历史记录,但不复制用户信息和工作区?

    我需要将仓库从一台 Perforce 服务器复制到另一台 文件修订历史记录需要保持完整 但用户信息和工作区信息不能复制到新服务器 我已经尝试了标准检查点创建和恢复过程 但如果两台服务器上都存在同名的用户或工作区 源服务器将覆盖目标服务器上的
  • 自动热键如何检测您所在的虚拟桌面?

    您好 我是自动热键 以及一般编程 的新手 我想编写一个脚本 让我可以方便地切换到特定的桌面 例如 在我的脚本中 Capslock 3 切换到桌面 3 正如您所看到的或者如果您尝试一下 它并不是很强大 该脚本只知道与真实桌面号码不同的桌面号码
  • 调整 RMarkdown 文档中使用 kable() 制作的表格的宽度

    使用knitr中的kable 函数制作表格时是否可以调整列的宽度 对于具有两列的表来说 这样的块会生成一个占据文档整个宽度的表 我想让列更窄 这可以用 kable 完成还是需要另一个包 这个 rmarkdown 块 r df lt data
  • Windows Phone 8 中的自动深色/浅色图标支持

    我认为这是一个很常见的问题 但我找不到适合我的解决方案 众所周知 WP 支持深色和浅色主题 用户可以更改主题 并且有多种方法可以覆盖他的决定并以您选择的颜色主题显示所有内容 但是 我只是想对这两种主题类型做出反应 并且我想以正确的颜色显示图
  • 删除字符串中的逗号,用逗号和双引号括起来 / Python

    我在 stackoverflow 上发现了一些类似的主题 但我是 Python 和 Reg Exps 的新手 我有一根绳子 2 星级宜必思柏林高级酒店于 2009 年进行了全面翻修 Messe 拥有 168 间空调客房 毗邻 柏林的 ICC
  • forEach 和 for (objs 中的 var o) 之间的性能差异

    以下之间的执行速度和 或内存消耗是否有任何差异 for var o in objs and objs forEach o 对于列表和队列 在我的机器上 使用 Dart VM 后者的速度往往要快 2 到 2 5 倍 这是有道理的 因为forE
  • 在express js路由中调用异步函数的正确方法

    我现在就是这样做的 但试图看看是否有正确的或其他的方法可以做到这一点 async function getmanual vars req res ajax var return data let db await mongo client