Redis - я пытаюсь импортировать файл в свой NodeJS, не назначая его переменной, пока это не работает

Краткий

Я пытаюсь импортировать файл, содержащий избыточный код в потребители. Пока кажется, что мой файл не читается потребителем, который возвращает меня:

функция getAsync не определена

но это, однако, определено в файле1.js

Вот мой фрагмент:

файл1.js:

const redis=require("redis"); 
rejson = require('redis-rejson');
const {promisify} = require('util'); 

rejson(redis); /* important - this must come BEFORE creating the client */
let client= redis.createClient({
    port:6380,
    host:'localhost',
    // password:process.env.rPass
});  

const setAsync = promisify(client.json_set).bind(client);
const arrappendAsync = promisify(client.json_arrappend).bind(client);
const getAsync = promisify(client.json_get).bind(client); 
const existsAsync= promisify(client.exists).bind(client);

файл2.js:

require("./redisConnect")
async function getUser(){ 
    let res=await getAsync("userStock", ".")
        .catch((err) => console.error(err)); 
    resArray= JSON.parse(res)
    console.log("userStock res: ", resArray[0]);
    client.quit()
}

// use userId to filter relevant array 
getUser()

Так как справиться с этой ситуацией?

Любой намек был бы замечательным, спасибо


person Webwoman    schedule 04.03.2019    source источник


Ответы (1)


В файле1.js вам нужно сделать:

module.exports = getAsync;

Затем в файле2.js сделайте следующее:

var getAsync = require('./file1.js')
person Matt Kuhns    schedule 04.03.2019
comment
Я бы просто залил файл1 в файл2, я видел, что это возможно с использованием таких пакетов, как babel, и, например, этот вопрос о stackoverflow для базового варианта использования: stackoverflow.com/questions/36426770/ - person Webwoman; 05.03.2019
comment
Я не понимаю твоего беспокойства. Да, запрос файла приведет к выполнению кода в файле. Обычно мы используем export/require для модуляции кода, чтобы мы могли повторно использовать его в других файлах. - person Matt Kuhns; 05.03.2019
comment
ну, я хотел бы иметь возможность делать такие вещи: stackoverflow.com/a/39286176/9817602 - person Webwoman; 05.03.2019