这个报错是因为什么呢?setValue传入字符串value正常,传入对象就报错。

来源:4-3 Redis实战应用配置—哈希表hset&hgetall

慕侠3297407

2022-10-31 05:37:01

PS C:\Users\18660\Desktop\929\8-4> npx babel-node src/config/test.js
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
ReplyError: WRONGTYPE Operation against a key holding the wrong kind of value
ReplyError: WRONGTYPE Operation against a key holding the wrong kind of value
ReplyError: WRONGTYPE Operation against a key holding the wrong kind of value
getValueimooc message from redis client

C:\Users\18660\Desktop\929\8-4\node_modules\redis-parser\lib\parser.js:193
    return new ReplyError(string)
           ^
ReplyError: WRONGTYPE Operation against a key holding the wrong kind of value
    at parseError (C:\Users\18660\Desktop\929\8-4\node_modules\redis-parser\lib\parser.js:193:12)
    at parseType (C:\Users\18660\Desktop\929\8-4\node_modules\redis-parser\lib\parser.js:303:14) {
  command: 'HGETALL',
  args: [ 'imoocobj' ],
  code: 'WRONGTYPE'
}
PS C:\Users\18660\Desktop\929\8-4>
const path=require('path')
const utils=require('./utils')
const webpack=require('webpack')
const nodeExternals=require('webpack-node-externals')
const {CleanWebpackPlugin}=require('clean-webpack-plugin')

const webpackconfig={
    target:'node',
    entry:{
        server:path.join(utils.APP_PATH,'index.js')
    },
    output:{
        filename:"[name].bundle.js",
        path:utils.DIST_PATH
    },
    module:{
        rules:[{
            test:/\.(js|jxs)$/,
            use:{
                loader:'babel-loader'
            },
            exclude:[path.join(__dirname,'/node_modules')]
        }
        ]
    },
    externals:[nodeExternals()],
    plugins:[
        new CleanWebpackPlugin(),
        new webpack.DefinePlugin({
            'process.env':{
                NODE_ENV:(process.env.NODE_ENV==='production'||process.env.NODE_ENV==='prod')?'production':'development'
            }
        })
    ],
    node:{
        console:true,
        global:true,
        process:true,
        Buffer:true,
        __filename:true,
        __dirname:true,
        setImmediate:true,
        path:true
    }
}


module.exports=webpackconfig
import { getHValue, getValue,setValue } from "./RedisConfig";

setValue('imooc','imooc message from redis client')

getValue('imooc').then((res)=>{
    console.log('getValue'+res)
})

setValue('imoocobj',{name:'brian',age:30,email:'brian@tomic.com'})

getHValue('imoocobj').then((res)=>{
    console.log('getHValue'+res)
})


写回答

2回答

慕雪晨

2023-08-08

我也出现过这个问题,对了一下代码,和老师的是一样的,redis版本也是一样的,也是报的这个错误

https://img.mukewang.com/climg/64d206a609683aad09110342.jpg

经过研究发现,因为上一节学习操作,已经创建了一个imooc的字符串,再次执行就又创建了一个一模一样的数据了,就报错了。我把之前创建的imooc删除了,重新再执行一遍就成功了。对象的如果报错,也可以先删除一下 再操作,以防重复然后报错

https://img.mukewang.com/climg/64d2076d09dd775a06460255.jpg

0

Brian

2022-10-31

0

大前端2022版

1个业务场景打通全端、全栈、全流程,实现全局思维与综合技术能力全面突破;对标阿里P6,8个月成为前端高级人才

2840 学习 · 691 问题

查看课程