Добавление ссылки на npm в пользовательский узел в NodeRed

Впервые я создаю собственный узел в NodeRed. Я также новичок в мире NodeJs/npm, поэтому, возможно, я спрашиваю что-то тривиальное, но не смог найти ответа.

Я следую официальному документу по созданию документа (Создание вашего первого узла), и все работает как положено, пока мой код не станет простым:

module.exports = function(RED) {
    function NewNode(config) {
        RED.nodes.createNode(this, config);

        var node = this;
        node.on('input', function (msg) {

            // My silly custom code
            this.warn("Something happened you should know about");

            var msg = { payload: "whatever" }
            node.send(msg);

        });
    }
    RED.nodes.registerType("custom-node", NewNode);
}

но теперь мне бы хотелось, чтобы этот узел делал больше, например, использовал библиотеку Axios для выполнения HTTP-вызова.

Я пытался импортировать его изначально или внутри функции, но возникла ошибка. Где мне следует «добавить ссылки», чтобы использовать объект внутри моей логики?

Я попытался сделать следующее:

const axios = require('axios');

module.exports = function(RED) {
    function NewNode(config) {
        RED.nodes.createNode(this, config);
.....

или

module.exports = function(RED) {
    function NewNode(config) {
        RED.nodes.createNode(this, config);

        var node = this;
        node.on('input', function (msg) {
             const axios = require('axios');
.....

Во всех случаях возникает ошибка в тот момент, когда я добавляю свой собственный узел в поток.

Куда мне следует импортировать необходимый пакет?

Спасибо!

Включена фактическая ошибка из консоли узла-красного цвета с трассировкой стека в вопрос.

hardillb 09.03.2024 07:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема не в коде, который вы показали (но первая версия более эффективна).

Вам нужно использовать npm для установки axios в каталог, где вы создаете узел, чтобы axios добавлялся к его package.json в качестве зависимости.

Другие вопросы по теме