Supertest中的MySQL查询返回{sql,bindings}而不是结果

编程入门 行业动态 更新时间:2024-10-07 17:28:29

Supertest中的MySQL查询返回{sql,bindings}<a href=https://www.elefans.com/category/jswz/34/1771316.html style=而不是结果"/>

Supertest中的MySQL查询返回{sql,bindings}而不是结果

我正在对查询mysql数据库的路由运行supertest +开玩笑,在本地运行。通过失眠进行测试会返回正确的信息,但是使用supertest时,我的所有数据库查询都不会返回正确的值。

// test.js

import request from 'supertest';
import db from '../database';
import app from './app';

describe('/', () => {
  test('should return db results', async () => {

    const mock = jest.spyOn(db, 'query');

    const response = await request(app).get(`/`)

    console.log(response.error);
    expect(dbMock).toBeCalled();
    expect(response.status).toBe(200);
  });
});
// route (excerpt from app.js)

import returnUserInfo from './returnUserInfo';

app.get(
  '/',
  returnUserInfo
);
// returnUserInfo.js

import db from '../database';

export default async function returnUserInfo(req, res, next) {
  const sql = 'select `userInfo` from `users` where `email` = ?';
  const bindings = ['test'];
  try {
    const data = await db.query(sql, bindings);
    if (data.length !== 1) {
      throw new Error(`Invalid ${Object.keys(data)}`);
    }
    return res.json(data[0]);
  } catch (err) {
    return next(err);
  }
}
// database.js

import { PoolConnection } from 'mysql';

const db = new PoolConnection(
  {
    host: 'localhost',
    user: 'root',
    password: 'foobar',
    database: 'db',
    connectionLimit: 100,
  },
  false,
);

export default db;

如前所述,对邮递员/失眠症进行测试会返回正确的结果...使用supertest测试并记录错误时:

Error: Invalid sql,bindings
回答如下:

[似乎有一个用于mysql db的node_module手动模拟,它覆盖了对数据库的所有调用并只是返回了]]

{ sql, bindings }

自我说明:当事情没有意义...请检查它们是否应该具有意义。

更多推荐

Supertest中的MySQL查询返回{sql,bindings}而不是结果

本文发布于:2024-05-07 15:13:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756865.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:而不是   MySQL   Supertest   bindings   sql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!