无法安装/使用xmlhttprequest

时间:2017-08-07 07:22:30

标签: node.js xmlhttprequest node-red

我正在接受node.js / node-RED的第一步,并且需要从节点组件执行http请求(GET,带有和不带xml有效负载的POST),所以我认为xmlhttprequest是我最好的选择。我有npm安装它。实际上将它安装在〜/ .node-red / node_modules和/ usr / local / lib / node_modules中,但每次启动node-RED时它都不会激活我的节点组件,并出现以下错误:

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

我的组件名称是synaptiq-solar,其代码首先需要xmlhttprequest组件,如下所示:

{
  "name": "synaptiq-solar",
  "version": "0.0.1",
  "description": "Just playing around, learning how to create a custom node",
  "dependencies": {
    "xmlhttprequest": "1.8.0"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "node-red": {
    "nodes": {
      "synaptiq-solar": "synaptiq-solar.js"
    }
  },
  "author": "Smappee n.v.",
  "license": "ISC"
}

另外,我的package.json有一个引用xmlhttprequest的依赖部分,如下所示:

import urllib.request 
proxy_support = urllib.request.ProxyHandler({'http':'149.56.44.146:9201'}) 
opener = urllib.request.build_opener(proxy_support) 
urllib.request.install_opener(opener) 
with urllib.request.urlopen('http://www.seamless.com') as response:
  print(response​.read())

那么我做错了什么?我应该在其他位置安装xmlhttprequest组件吗?是否有另一个lib-directory,node-RED正在寻找dependend组件?

1 个答案:

答案 0 :(得分:2)

如果自定义节点具有外部依赖关系,则应在其package.json文件中声明它,以便它们与自定义模块一起安装。

如果您已将其创建为“本地”节点(.js目录中只有.htmlnodes文件且没有package.json),则应移动将其创建为模块。

该文档包含有关正确打包节点的指南:https://nodered.org/docs/creating-nodes/packaging