首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysql2在类型记录中的强键入结果

mysql2在类型记录中的强键入结果
EN

Stack Overflow用户
提问于 2022-10-15 18:11:22
回答 1查看 57关注 0票数 0

我正在开发一个使用NextJS和类型记录的应用程序,并试图确定正确键入MySQL响应的最佳方法。下面是API端点:

代码语言:javascript
运行
复制
import { hash } from "bcrypt";
import type { NextApiRequest, NextApiResponse } from "next";
import randomstring from "randomstring";

import { executeQuery } from "../../../lib/db";

const Test = async (req: NextApiRequest, res: NextApiResponse) => {
  // Manage password generation
  const password = randomstring.generate(16);
  const hashedPassword = hash(password, 10);

  // Create new auth using email and password
  const auth = await executeQuery(
    "INSERT INTO auth (email, password) VALUES (?, ?)",
    ["test@test.com", (await hashedPassword).toString()]
  );

  res.statusCode = 200;
  res.json(auth.insertId);
};

export default Test;

我希望强烈键入insertId以通过ESLint删除所有警告和错误,但不幸的是,我所做的每一次努力都没有成功。我得到的错误是:

代码语言:javascript
运行
复制
Property 'insertId' does not exist on type 'RowDataPacket[] | RowDataPacket[][] | OkPacket | OkPacket[] | ResultSetHeader | { error: unknown; }'.
  Property 'insertId' does not exist on type 'RowDataPacket[]'.ts(2339)

我的executeQuery函数定义为:

代码语言:javascript
运行
复制
import mysql from "mysql2/promise";

export const executeQuery = async (query: string, params: unknown[] = []) => {
  try {
    const db = await mysql.createConnection({
      host: process.env.MYSQL_HOST,
      database: process.env.MYSQL_DATABASE,
      user: process.env.MYSQL_USER,
      password: process.env.MYSQL_PASSWORD,
    });

    const [results] = await db.execute(query, params);
    db.end();

    return results;
  } catch (error) {
    return { error };
  }
};

我的实现尝试之一是this SO response,但我无法让它工作.

所有的帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2022-10-15 19:18:03

所以,经过一段时间的解决后,我设法解决了自己的问题。

结果,我检查的不对。

在调用auth.insertId之前,您需要包括以下检查:

代码语言:javascript
运行
复制
if (!auth || !("insertId" in auth)) {
  // Do something
}

这样,您实际上就不必键入任何内容,因为当您尝试使用mysql时,它会变得非常复杂。

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

https://stackoverflow.com/questions/74081907

复制
相关文章

相似问题

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