Node-redis: TypeError: net.isIP๋Š” ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 05์›” 28์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: NodeRedis/node-redis

_node_redis์—์„œ ๋ฐœ๊ฒฌํ•œ ๋ฌธ์ œ๋ฅผ ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ ํ•ด์ฃผ์„ธ์š”
์ด ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์•„๋ž˜ ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋Š”
๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๋˜๋Š” ๊ธฐ๋Šฅ ์š”์ฒญ์„ ์œ„ํ•ด. ์งˆ๋ฌธ์ด ์žˆ์œผ์‹œ๋ฉด [gitter]์— ์งˆ๋ฌธํ•˜์‹ญ์‹œ์˜ค.
ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ํ•œ ์ตœ์„ ์„ ๋‹คํ•˜์‹ญ์‹œ์˜ค._

_ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€
๋ฌธ์ œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ฝ”๋“œ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
์ž‘์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!_

  • ๋ฒ„์ „ : ์–ด๋–ค node_redis์™€ ์–ด๋–ค redis ๋ฒ„์ „์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? 2.8.0
  • ํ”Œ๋žซํผ : ์–ด๋–ค ํ”Œ๋žซํผ/๋ฒ„์ „์ธ๊ฐ€์š”? (์˜ˆ: Windows 7/Ubuntu 15.10/Azure์˜ Node.js 0.10 ๋˜๋Š” Node.js 5.7.0) Windows
  • ์„ค๋ช… : ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…, ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ์˜ค๋ฅ˜ ๋ฐ ์ฝ”๋“œ์˜ ์Šคํƒ ์ถ”์ 

์•ˆ๋…• ์—ฌ๋Ÿฌ๋ถ„,
์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ Redis ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.
var redis = require('redis');
var redisClient = redis.createClient({ํ˜ธ์ŠคํŠธ:'127.0.0.1', ํฌํŠธ:6379});

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ์ด ์˜ค๋ฅ˜๋ฅผ ๋˜์ง„๋‹ค.
๋˜ ๋‹ค๋ฅธ {
82 | cnx_options.port = +options.port || 6379;
83 | cnx_options.host = ์˜ต์…˜.ํ˜ธ์ŠคํŠธ || '127.0.0.1';

84 | cnx_options.family = !options.family && net.isIP(cnx_options.host) || (options.family === 'IPv6' ? 6:4);
| ^ 85 | this.address = cnx_options.host + ':' + cnx_options.port;
86 | } // ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋ฅผ ์˜ค์šฉํ•  ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
87 |

๋ˆ„๊ตฌ๋“ ์ง€ ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜์‹ญ์‹œ์˜ค.

๊ฐ์‚ฌ ํ•ด์š”

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

redis index.js ํŒŒ์ผ์˜ 3ํ–‰์„ var net = require('net-browserify');

์ด๊ฒƒ์€ ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ์ง€๋งŒ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ง€๊ธˆ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  7 ๋Œ“๊ธ€

redis index.js ํŒŒ์ผ์˜ 3ํ–‰์„ var net = require('net-browserify');

์ด๊ฒƒ์€ ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ์ง€๋งŒ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ง€๊ธˆ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๋…ธ๋“œ ๋ฒ„์ „์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

redis index.js ํŒŒ์ผ์˜ 3ํ–‰์„ var net = require('net-browserify');

์ด๊ฒƒ์€ ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ์ง€๋งŒ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ง€๊ธˆ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ๋„ ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

๋‹น์‹ ์€ ๋‚˜์˜ ์˜์›…์ด๋‹ค. ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด์žˆ๋‹ค!!!!!

npx create-react-app test_redis_react --typescript
cd test_redis_react

์›์‚ฌ ์ถ”๊ฐ€ redis
์ •๋ณด ์ง์ ‘ ์ข…์†์„ฑ
โ””โ”€ [email protected]
์ •๋ณด ๋ชจ๋“  ์ข…์†์„ฑ
โ”œโ”€ [email protected]
โ”œโ”€ [email protected]
โ”œโ”€ [email protected]
โ”œโ”€ [email protected]
โ””โ”€ [email protected]
โœจ 8.19์ดˆ์— ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๋ ‡๊ฒŒ App.tx๋ฅผ ๊ณ ์ณค๋‹ค.

'๋ฐ˜์‘'์—์„œ React ๊ฐ€์ ธ์˜ค๊ธฐ;
'./logo.svg'์—์„œ ๋กœ๊ณ  ๊ฐ€์ ธ์˜ค๊ธฐ;
๊ฐ€์ ธ์˜ค๊ธฐ './App.css';

ํ•จ์ˆ˜ ์•ฑ() {
const redis = require('redis');
let client:any = redis.createClient(6379, "127.0.0.1", {db: 3});
client.get("ํ‚ค", redis.print);

return (
        <div className="App">
            <header className="App-header">
            <p>
            Edit <code>src/App.tsx</code> and save to reload.
            </p>
            </header>
        </div>
       );

}

๊ธฐ๋ณธ ์•ฑ ๋‚ด๋ณด๋‚ด๊ธฐ;

ํ‹€๋ ธ์–ด!!!

๋” ๋‚˜์€ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์œ„ํ•ด React DevTools ๋‹ค์šด๋กœ๋“œ: https://fb.me/react-devtools
index.js:67 ์žกํžˆ์ง€ ์•Š์€ TypeError: net.isIP๋Š” ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด RedisClient์—์„œ(index.js:67)
Object.push../node_modules/redis/index.js.exports.createClient์—์„œ (index.js:1022)
์•ฑ์—์„œ (App.tsx:7)
renderWithHooks์—์„œ (react-dom.development.js:14803)
mountIndeterminateComponent์—์„œ (react-dom.development.js:17482)
beginWork์—์„œ (react-dom.development.js:18596)
HTMLUnknownElement.callCallback์—์„œ (react-dom.development.js:188)
Object.invokeGuardedCallbackDev์—์„œ (react-dom.development.js:237)
invokeGuardedCallback์—์„œ (react-dom.development.js:292)
beginWork$1์—์„œ (react-dom.development.js:23203)
performUnitOfWork์—์„œ (react-dom.development.js:22157)
workLoopSync์—์„œ (react-dom.development.js:22130)
performSyncWorkOnRoot์—์„œ (react-dom.development.js:21756)
scheduleUpdateOnFiber์—์„œ (react-dom.development.js:21188)
updateContainer์—์„œ (react-dom.development.js:24373)
react-dom.development.js:24758์—์„œ
unbatchedUpdates์—์„œ (react-dom.development.js:21903)
legacyRenderSubtreeIntoContainer์—์„œ (react-dom.development.js:24757)
Object.render์—์„œ (react-dom.development.js:24840)
Module../src/index.tsx์—์„œ (index.tsx:7)
__webpack_require__์—์„œ (๋ถ€ํŠธ์ŠคํŠธ๋žฉ:784)
fn์—์„œ(๋ถ€ํŠธ์ŠคํŠธ๋žฉ:150)
Object.1์—์„œ(serviceWorker.ts:149)
__webpack_require__์—์„œ (๋ถ€ํŠธ์ŠคํŠธ๋žฉ:784)
checkDeferredModules์—์„œ(๋ถ€ํŠธ์ŠคํŠธ๋žฉ:45)
Array.webpackJsonpCallback์—์„œ [ํ‘ธ์‹œ๋กœ](๋ถ€ํŠธ์ŠคํŠธ๋žฉ:32)
main.chunk.js:1์—์„œ

๋…ธ๋“œ --๋ฒ„์ „
v12.18.3

npm --๋ฒ„์ „
6.14.6

๋‚˜๋Š” App.tsx์—์„œ net์„ ์ธ์‡„ํ–ˆ๊ณ ,
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ:

๊ทธ๋ฌผ:
๋ฌผ์ฒด
__ํ”„๋กœํ† __:
์ƒ์„ฑ์ž: ฦ’ Object()
hasOwnProperty: ฦ’ hasOwnProperty()
isPrototypeOf: ฦ’ isPrototypeOf()
propertyIsEnumerable: ฦ’ propertyIsEnumerable()
toLocaleString: ฦ’ toLocaleString()
toString: ฦ’ toString()
valueOf: ฦ’ valueOf()
__defineGetter__: ฦ’ __defineGetter__()
__defineSetter__: ฦ’ __defineSetter__()
__lookupGetter__: ฦ’ __lookupGetter__()
__lookupSetter__: ฦ’ __lookupSetter__()
__proto__ ๊ฐ€์ ธ์˜ค๊ธฐ: ฦ’ __proto__()
__proto__ ์„ค์ •: ฦ’ __proto__()

net ๋ชจ๋“ˆ์€ node.js์˜ ๊ธฐ๋ณธ ๋ชจ๋“ˆ์ด์ง€๋งŒ ์ด tsx ํŒŒ์ผ์—์„œ๋Š” ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!!!
์™œ์š”? ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰