2
respostas

Erro ao rodar Migration, The "data" argument must be of type string

Realizei todos os passos, na hora de rodas a migration aparece a seguinte mensagem:

 at ClientHandshake.execute (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\commands\command.js:45:22)
PS D:\projetos\Alura\orm-nodejs-api-sequelize-mysql> npx sequelize-cli db:create

Sequelize CLI [Node: 16.13.1, CLI: 6.4.1, ORM: 6.21.6]

Loaded configuration file "api\config\config.json".
Using environment "development".
node:internal/crypto/hash:105
    throw new ERR_INVALID_ARG_TYPE(
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (123456)
    at new NodeError (node:internal/errors:371:5)
    at Hash.update (node:internal/crypto/hash:105:11)
    at sha1 (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\auth_41.js:31:8)
    at Object.token [as calculateToken] (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\auth_41.js:67:18)
    at new HandshakeResponse (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\packets\handshake_response.js:28:26)
    at ClientHandshake.sendCredentials (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\commands\client_handshake.js:57:31)
    at ClientHandshake.handshakeInit (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\commands\client_handshake.js:142:12)
    at ClientHandshake.execute (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\commands\command.js:45:22)
    at Connection.handlePacket (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\connection.js:456:32)
    at PacketParser.onPacket (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\connection.js:85:12)
    at PacketParser.executeStart (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\packet_parser.js:75:16)
    at Socket.<anonymous> (D:\projetos\Alura\orm-nodejs-api-sequelize-mysql\node_modules\mysql2\lib\connection.js:92:25)
    at Socket.emit (node:events:390:28)
    at addChunk (node:internal/streams/readable:315:12)
    at readableAddChunk (node:internal/streams/readable:289:9)
    at Socket.Readable.push (node:internal/streams/readable:228:10) {
  code: 'ERR_INVALID_ARG_TYPE'

Não tenho noção do que pode estar errado, já havia feito outros projetos com Sequelize e MySQL e utilizei migration e deu certo.

Subi o projeto para o github: https://github.com/IgorMartinsOli/orm-nodejs-api-sequelize-mysql

2 respostas

Creio que seja releases de alguma coisa, refiz o projeto utilizando estritamente as versões do tutor, deu tudo certo.

{
  "name": "orm-nodejs-api-sequelize-mysql2",
  "version": "1.0.0",
  "description": "",
  "main": "./api/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon ./api/index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.18.1",
    "mysql2": "^2.1.0",
    "path": "^0.12.7",
    "sequelize": "^5.21.7",
    "sequelize-cli": "^5.5.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.3"
  }
}

Amigo estava com o mesmo erro, não é preciso usar a mesma versão passada nos vídeos até este momento da instrução.

Como você pode notar nesta parte do erro, você está passando sua senha numérica em formato de número 123456, porém deverá ser enviado em formato string, colocando a senha "123456"

TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (123456)