Впервые я создаю собственный узел в 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');
.....
Во всех случаях возникает ошибка в тот момент, когда я добавляю свой собственный узел в поток.
Куда мне следует импортировать необходимый пакет?
Спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема не в коде, который вы показали (но первая версия более эффективна).
Вам нужно использовать npm для установки axios в каталог, где вы создаете узел, чтобы axios добавлялся к его package.json в качестве зависимости.
Включена фактическая ошибка из консоли узла-красного цвета с трассировкой стека в вопрос.