Invalid argument type when trying to pass EX into set function
Hardekerlis opened this issue · comments
When I try to set an expiration on my key redis throws a TypeError: Invalid argument error. I've basically copied the docs.
Environment:
- Node.js Version: v18.12.0
- Redis Server Version: 6.2.7
- Node Redis Version: 4.5.1
- Platform: Fedora 34
await redisClient.set(`test`, `test`); // Works
await redisClient.set(`test`, `test`, {}); // Does not work
await redisClient.set(`test`, `test`, { // Does not work
EX: 10,
});
Error:
/home/gustaf/projekt/random-website/server/node_modules/redis/node_modules/@redis/client/dist/lib/client/RESP2/encoder.js:17 throw new TypeError('Invalid argument type'); ^ TypeError: Invalid argument type at encodeCommand (/home/gustaf/projekt/random-website/server/node_modules/redis/node_modules/@redis/client/dist/lib/client/RESP2/encoder.js:17:19) at RedisCommandsQueue.getCommandToSend (/home/gustaf/projekt/random-website/server/node_modules/redis/node_modules/@redis/client/dist/lib/client/commands-queue.js:187:45) at Commander._RedisClient_tick (/home/gustaf/projekt/random-website/server/node_modules/redis/node_modules/@redis/client/dist/lib/client/index.js:440:76) at Commander._RedisClient_sendCommand (/home/gustaf/projekt/random-website/server/node_modules/redis/node_modules/@redis/client/dist/lib/client/index.js:424:82) at Commander.sendCommand (/home/gustaf/projekt/random-website/server/node_modules/redis/node_modules/@redis/client/dist/lib/client/index.js:375:93) at Commander.<computed> (/home/gustaf/projekt/random-website/server/node_modules/redis/node_modules/@redis/client/dist/lib/client/index.js:412:27) at forgotPassword (/home/gustaf/projekt/random-website/server/src/gql/resolvers/endpoints/user/forgot-password.ts:18:21) at async UserResolver.forgotPassword (/home/gustaf/projekt/random-website/server/src/gql/resolvers/endpoints/user/index.ts:61:14) at async dispatchHandler (/home/gustaf/projekt/random-website/server/node_modules/type-graphql/dist/resolvers/helpers.js:83:24) at async /home/gustaf/projekt/random-website/server/node_modules/type-graphql/dist/resolvers/helpers.js:84:26
maybe the client is in legacy mode?
I've tried it both with legacy mode and without
this script does not work (it should log "OK")?
import { createClient } from 'redis';
const client = createCilient();
client.on('error', err => console.error('Redis Client Error', err));
await client.connect();
console.log(
await client.set('key', 'value', {
EX: 10
})
);
one more thing, can you please try this (just in case its v3 or in legacy mode):
redisClient.set(`test`, `test`, 'EX', '10');
Sorry for late response.
The attached script above with EX passed in an object worked. What I think happened is that I forgot to save my file when I removed legacy mode from the create client config...
Closing this issue as it has been resolved.