小编Jam*_*hon的帖子

PRISMA:更新方法中的 where 子句出现类型错误

有一个特定的 Prisma ORM 库错误,我需要帮助解决。

我创建了一个迁移并将其推送到 postgres 数据库。

我已经为 Prisma 生成了客户端模型,并且能够使用 create 方法查找All 并插入数据。

我遇到麻烦的是更新方法。

这是我的代码

app.post("/articles/:title", async (req: Request, res: Response) => {
  const article = await prisma.article.update({
    where: { title: req.params.title },
    data: { title: req.body.title, content: req.body.content },
  })
  res.send('The article was posted sucessfully.' + article)
})
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,这让我认为客户端在使用 where 参数时没有找到类型“标题”。

app.ts:65:14 - 错误 TS2322: 类型 '{ title: string; }' 不可分配给类型“ArticleWhereUniqueInput”。对象文字只能指定已知属性,并且“ArticleWhereUniqueInput”类型中不存在“title”。

65 其中: { title: req.params.title }, ~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.prisma/client/index.d.ts:784:3 784 其中:ArticleWhereUniqueInput ~~~~~ 预期类型来自属性“where”,该属性在类型“Subset<ArticleUpdateArgs, ArticleUpdateArgs>”上声明

其他人遇到过这个问题吗?我尝试内省数据库,只是为了确保数据库完全按原样捕获,包含标题和内容字段,然后再次生成客户端。

非常感谢詹姆斯

orm prisma

4
推荐指数
1
解决办法
2828
查看次数

构造异步 Express GET 请求的最佳方法

我一直在寻求通过合并异步/等待处理来更新我的 Express 技能,并且有一个简单的问题。

从我在网上看到的示例来看,大多数请求都被结构化包装在 try/catch 块内,并在处理它们之前将任何等待任务添加到变量中。

app.post('/signup', async(req, res) => {
  const { email, firstName } = req.body
  const user = new User({ email, firstName })
  const ret = await user.save()
  res.json(ret)
}) 
Run Code Online (Sandbox Code Playgroud)

我的代码如下所示:

app.route("/articles")
  // GET: articles
  .get(async (req, res) => {
    await Article.find((err, results) => {
      if (!err) {
        res.json(results);
      } else {
        res.send(err);
      };
    });
  })
Run Code Online (Sandbox Code Playgroud)

我应该将 Mongoose 的响应分配给一个变量作为第一个代码块示例并在 try/catch 中进行处理,还是我的代码本质上做同样的事情,并且以一种最佳实践的方式?

提前致谢!

干杯,詹姆斯

node.js express async-await

3
推荐指数
1
解决办法
2576
查看次数

防止在未更改任何字段的 Rails 应用程序中更新记录

我正在寻找一种方法来防止用户在我的 Rails 应用程序中没有更改任何值时单击更新方法的更新。如果他们不更改任何值,我的 UPDATE 方法将在某些字段中写入空值,因此如果用户不更改任何详细信息而只是单击更新,我需要应用程序来防止更新记录。

任何建议将不胜感激。

仅供参考,这是标准的千篇一律的更新方法:

def update
    if @client.update(client_params)
      redirect_to @client, notice: 'Client was successfully updated.'
    else
      render :edit
    end
  end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

0
推荐指数
1
解决办法
4757
查看次数

标签 统计

async-await ×1

express ×1

node.js ×1

orm ×1

prisma ×1

ruby ×1

ruby-on-rails ×1