首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript Objection.js事务/查询函数未找到

Javascript Objection.js事务/查询函数未找到
EN

Stack Overflow用户
提问于 2022-07-06 16:04:07
回答 1查看 80关注 0票数 0

我正在将Javascript项目转换为类型记录。我在用Objection.js。问题是,类型记录无法找到Objection.js内置事务和查询函数的键入信息。我有以下类型的dev依赖项:

代码语言:javascript
复制
    "@types/knex": "^0.16.1",
    "@types/koa": "^2.13.4",
    "@types/koa-bodyparser": "^4.3.7",
    "@types/koa-json": "^2.0.20",
    "@types/koa-logger": "^3.1.2",
    "@types/koa-passport": "^4.0.3",
    "@types/koa-router": "^7.4.4",
    "@types/node": "^18.0.0",
    "@types/node-os-utils": "^1.3.0",
    "@types/statuses": "^2.0.0",

这是我有问题的代码。在类型记录中找不到事务函数和查询函数。具体错误是ts(2339)“属性‘事务’在类型用户上不存在”以及“属性‘查询’在类型用户上不存在”。

代码语言:javascript
复制
  async getOne(ctx): Promise<ResponseType> {
    const userId = ctx.params.id;
    if (!ctx.isAuthenticated() || !ctx.req.user.canActAs(userId)) {
      return { status: status('Unauthorized') };
    }
    const idSchema = Joi.number().positive();

    try {
      // Error is on this line:
      const returnValue = await User.transaction(async (trx) => {
        await idSchema.validateAsync(userId);

        // Error is on this line:
        const user = await User.query(trx)
          .where('id', userId)
          .select(ctx.query.select ? ctx.query.select : null)
          .first();
        const returnedUser = ctx.req.user.isAdmin() ? user : user.filtered();
        return { status: status('OK'), body: returnedUser };
      });

      return returnValue;
    } catch (error) {
      logger.error(error);
      return {
        status: status('Internal Server Error'),
        message: 'Error',
      };
    }
  }
EN

回答 1

Stack Overflow用户

发布于 2022-07-06 23:08:37

我必须从以下位置更改用户导入:

import User = require('../../database/models/User');

import User from '../../database/models/User';

这解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72886709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档