JSON для повторного использования ioredis с nodejs
Я новичок в Redis, так что терпите меня. Я пытаюсь добавить о 1704
json возражает в базу данных, используя nodejs, но когда я выполняю свой скрипт, я получаю ошибку. Дело в том, что я не уверен, что вызывает ошибку. Возможно, подход, который я использую, неверен. Я бы очень признателен за любую помощь.
Вот мои файлы:
/*items.json*/
[
{
"imageCredit": {
"artist": "Martin Wessely",
"link": "http://www.resplashed.com/photographer/martin_wessely/"
},
"tags": [
"Trees"
],
"imageUrl": "http://www.resplashed.com/img/400_002e1ecb8bd2.jpg",
"filename": "400_002e1ecb8bd2.jpg",
"imageHash": "2b1d5b5ef4b37b4f5d0dccade1b69987",
"price": 10.99,
"name": "Handcrafted Trees Mug",
"description": "enim corporis voluptatibus laudantium possimus alias dolorem voluptatem similique aut aliquam voluptatem voluptatem omnis id consequatur",
"slug": "Handcrafted-Trees-Mug",
"added": 1485723766805,
"manufacturer": "OHara-Group",
"itemType": "mug",
"productImg": "mug-400_002e1ecb8bd2.jpg"
},
{
"imageCredit": {
"artist": "Patrick Fore",
"link": "http://www.resplashed.com/photographer/patrick_fore/"
},
"tags": [
"Beach",
"Ocean",
"Water"
],
"imageUrl": "http://www.resplashed.com/img/400_00b425ea69e0.jpg",
"filename": "400_00b425ea69e0.jpg",
"imageHash": "9197d084a8309c5cc1c1860063bc4dda",
"price": 19.99,
"name": "Rustic Beach Mug",
"description": "totam at veritatis eligendi assumenda ex quia praesentium quibusdam ducimus",
"slug": "Rustic-Beach-Mug",
"added": 1481573896833,
"manufacturer": "Sipes-Inc",
"itemType": "mug",
"productImg": "mug-400_00b425ea69e0.jpg"
},
{ ... }
]
И скрипт, который я использую:
/* index.js */
const Redis = require('ioredis');
const items = require('./items.json');
const redis = new Redis();
function rk() {
return Array.prototype.slice.call(arguments).join(':');
}
items.map(item => {
redis.multi([
[
'HMSET', rk('redishop', 'items', item['slug']),
'artist', item['imageCredit']['artist'],
'price', item['price'],
'name', item['name'],
'description', item['description'],
'manufacturer', item['manufacturer'],
'itemType', item['itemType'],
'productImg', item['productImg']
],
['SADD', rk('redishop', 'all-items'), item['slug']]
]).exec((err, result) => {
if (err) {
throw err;
}
console.log(result);
});
});
Но когда я запускаю его, я получаю следующую ошибку:
P:\.js\100917\nodejs-redis-101\ecommerce-sample-set\node_modules\ioredis\lib\pipeline.js:188
this[commandName].apply(this, args);
^
TypeError: Cannot read property 'apply' of undefined
at Pipeline.addBatch (P:\.js\100917\nodejs-redis-101\ecommerce-sample-set\node_modules\ioredis\lib\pipeline.js:188:22)
at Redis.redis.multi (P:\.js\100917\nodejs-redis-101\ecommerce-sample-set\node_modules\ioredis\lib\transaction.js:27:16)
at items.map.item (P:\.js\100917\nodejs-redis-101\ecommerce-sample-set\index.js:14:9)
at Array.map (<anonymous>)
at Object.<anonymous> (P:\.js\100917\nodejs-redis-101\ecommerce-sample-set\index.js:12:7)
at Module._compile (module.js:624:30)
at Object.Module._extensions..js (module.js:635:10)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Function.Module.runMain (module.js:665:10)
at startup (bootstrap_node.js:201:16)
at bootstrap_node.js:626:3
Вот консольный вывод команды:
λ node .
[ [ 'HMSET',
'redishop:items:Handcrafted-Trees-Mug',
'artist',
'Martin Wessely',
'price',
10.99,
'name',
'Handcrafted Trees Mug',
'description',
'enim corporis voluptatibus laudantium possimus alias dolorem voluptatem similique aut aliquam voluptatem voluptatem omnis id consequatur',
'manufacturer',
'OHara-Group',
'itemType',
'mug',
'productImg',
'mug-400_002e1ecb8bd2.jpg' ],
[ 'SADD', 'redishop:all-items', 'Handcrafted-Trees-Mug' ] ]