小编use*_*007的帖子

如何使用 prisma 和 postgresql 处理条件准备语句?

我有一个搜索查询,其参数根据客户端输入而变化。

await prisma.$queryRaw(`SELECT column FROM table ${condition ? `WHERE column = '${condition}'`  :' ' } `) 
Run Code Online (Sandbox Code Playgroud)

如何使用准备好的语句编写此查询并避免重复查询。我想出的唯一解决方案如下:

const result = condition ? await prisma.$queryRaw(`SELECT column FROM table WHERE column = $1`,condition) : await prisma.$queryRaw(`SELECT column FROM table`)
Run Code Online (Sandbox Code Playgroud)

这样做的目的是避免第一个查询中的 SQL 注入。

在尝试@Ryan 建议的解决方案后进行编辑, 出现以下错误:

Raw query failed. Code: `22P03`. Message: `db error: ERROR: incorrect binary data format in bind parameter 1`
Run Code Online (Sandbox Code Playgroud)

这是我的实现:

    const where = Prisma.sql`WHERE ${searchConditions.join(' AND ')}`;
    const fetchCount = await prisma.$queryRaw`
    SELECT 
      COUNT(id)
    FROM
      table
    ${searchConditions.length > 0 …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js prisma

7
推荐指数
1
解决办法
8664
查看次数

Next.js 服务器端重定向覆盖区域设置

在我的一些页面中,我使用getServerSidePropsAPI 调用并在必要时重定向用户。我正在构建的网络应用程序是多语言的,我需要始终向用户显示正确的语言。

主页/使用getServerSideProps并将用户重定向到配置文件或登录页面。为此,我执行以下操作:

    return {
      redirect: {
        permanent: false,
        destination: someLogic ? `${context.locale}/login` : `${context.locale}/profile`,
      },
    };
Run Code Online (Sandbox Code Playgroud)

现在,配置文件和用户页面getServerSideProps也使用来检查是否存在有效会话并在必要时重定向用户。例如,当用户的会话过期时,他将尝试访问个人资料页面,然后他将被重定向到登录页面。如果我将该destination属性设置为/login区域设置属性将被覆盖,用户将获得默认语言并重定向到domain/login. 如果我将其设置为,${context.locale}/login并且最初调用的页面是, domain/fr-FR/profile那么用户将被重定向到domain/fr-FR/fr-FR/login

客户端重定向使用router.pushrouter.replace工作正常并返回正确的网址。

据我了解,我无法从上下文中获取绝对 URL 来getServerSideProps检查区域设置是否已设置,那么我该如何解决这个问题?

我目前正在使用next 10.0.4,这是我的next.config.js

module.exports = {
  i18n: {
    locales: ['de-DE', 'en-US', 'fr-FR', 'nl-NL', 'it-IT'],
    defaultLocale: 'en-US',
    localDetection: true,
  }
}
Run Code Online (Sandbox Code Playgroud)

redirect internationalization next.js

6
推荐指数
1
解决办法
8195
查看次数

在camera2预览android上绘制矩形

我正在尝试使用此链接中的基本 Camera2 在 camera2 预览上绘制一个矩形:https : //github.com/googlesamples/android-Camera2Basic

我在论坛上遵循了这个问题的答案:

用于在相机预览上绘制的 android Camera2 API + TextureView 叠加层

但我无法让它工作。如果您能帮我弄清楚如何解决我的问题,我将不胜感激。这是用于绘制矩形的类:Rectangle.java

package com.example.android.camera2basic;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;

public class Rectangle extends View {
Paint paint = new Paint();

public Rectangle(Context context) {
    super(context);
}


@Override
public void onDraw(Canvas canvas) {
    paint.setColor(Color.GREEN);
    paint.setStyle(Paint.Style.FILL);
    Rect rect = new Rect(20, 56, 200, 112);
    canvas.drawRect(rect, paint );
}
}
Run Code Online (Sandbox Code Playgroud)

相机activity_camera.xml 的xml 文件:

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-camera

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