Skip to content

Execute a MySQL command with named parameters  #6560

Open
@jangeorgiev

Description

@jangeorgiev

Steps to reproduce

  1. Install node v12.19.0
  2. Install package "loopback-connector-mysql": "6.0.0"
  3. use repository that extends DefaultCrudRepository and run:
    await repo.execute("SELECT * FROM table WHERE name = :name", {name: "John Doe"})

Current Behavior

Receive error:
strong-error-handler Handling AssertionError [ERR_ASSERTION]: params must be an array

Expected Behavior

According to doc the type NamedParameters is supported, so object should be handled

Additional information

My stack trace:
strong-error-handler Handling AssertionError [ERR_ASSERTION]: params must be an array at MySQL.SQLConnector.execute (/api/node_modules/loopback-connector-mysql/node_modules/loopback-connector/lib/sql.js:566:3) at /api/node_modules/loopback-datasource-juggler/lib/datasource.js:2711:39 at new Promise (<anonymous>) at MainDBDataSource.DataSource.execute (/api/node_modules/loopback-datasource-juggler/lib/datasource.js:2710:10) at MySQLRepository.execute (/api/node_modules/@loopback/repository/dist/repositories/legacy-juggler-bridge.js:363:46) at MySQLRepository.query (/api/dist/repositories/mysql.repository.js:16:21) at MyTestController.finances (/api/dist/controllers/my-test.controller.js:63:37) at invokeTargetMethod (/api/node_modules/@loopback/context/dist/invocation.js:156:49) at /api/node_modules/@loopback/context/dist/invocation.js:138:16 at Object.transformValueOrPromise (/api/node_modules/@loopback/context/dist/value-promise.js:257:16) at invokeTargetMethodWithInjection (/api/node_modules/@loopback/context/dist/invocation.js:133:28) at InterceptedInvocationContext.invokeTargetMethod (/api/node_modules/@loopback/context/dist/invocation.js:83:20) at targetMethodInvoker (/api/node_modules/@loopback/context/dist/interceptor.js:241:57) at /api/node_modules/@loopback/context/dist/interceptor-chain.js:110:20 at Object.transformValueOrPromise (/api/node_modules/@loopback/context/dist/value-promise.js:257:16) at GenericInterceptorChain.invokeNextInterceptor (/api/node_modules/@loopback/context/dist/interceptor-chain.js:105:32)

node -e 'console.log(process.platform, process.arch, process.versions.node)'
Outputs: linux x64 12.19.0

npm ls --prod --depth 0 | grep loopback
Outputs:
├── @loopback/[email protected]
├── @loopback/[email protected]
├── @loopback/[email protected]
├── @loopback/[email protected]
├── @loopback/[email protected]
├── @loopback/[email protected]
├── @loopback/[email protected]
├── @loopback/[email protected]
├── @loopback/[email protected]
├── @loopback/[email protected]
├── [email protected]
├── [email protected]
├── [email protected]

Related Issues

I have found #5264 which is related if the problem is in documentation

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions