/**
* 本文由ai翻译
*/
/**这是一个由Node-RED提供的默认设置文件。
* 它可以包含任何有效的JavaScript代码,这些代码将在Node-RED启动时运行。
* 以 // 开头的行是被注释掉的。
* 每个条目应该与上面的条目和下面的条目用逗号 ',' 分隔。
* 有关个别设置的更多信息,请参考文档:
* https://nodered.org/docs/user-guide/runtime/configuration
*设置分为以下几个部分:
* - 流文件和用户目录设置
* - 安全
* - 服务器设置
* - 运行时设置
* - 编辑器设置
* - 节点设置
*/
module.exports = {
/*******************************************************************************
* 流文件和用户目录设置
* - flowFile 流程文件
* - credentialSecret 凭证密钥
* - flowFilePretty 流程文件美化
* - userDir 用户目录
* - nodesDir 节点目录
******************************************************************************/
// 包含流的文件。如果没有设置,则默认为 flows_<hostname>.json。
flowFile: 'flows.json',
// 默认情况下,凭据在存储时会使用生成的密钥进行加密。要指定您自己的密钥,请设置以下属性。
// 如果您想禁用凭据的加密,请将此属性设置为false。
// 注意:一旦设置了此属性,请不要更改它 - 这样做会阻止node-red解密您现有的凭据,并且它们将丢失。
//credentialSecret: "a-secret-key",
// 默认情况下,流的JSON将被格式化为多行,使得在使用版本控制时更容易比较更改。
// 要禁用JSON的格式化,请将以下属性设置为false。
flowFilePretty: true,
// 默认情况下,所有用户数据存储在用户主目录下的名为`.node-red`的目录中。
// 要使用不同的位置,可以使用以下属性。
// 注意:这里给出的是一个注释示例,实际使用中需要取消注释(去掉前面的'//')并指定正确的路径。
//userDir: '/home/nol/.node-red/',
// Node-RED会扫描userDir中的`nodes`目录以查找本地节点文件。
// 可以使用以下属性来指定要扫描的额外目录。
// 注意:这里同样是一个注释示例,实际使用中需要取消注释并指定额外的节点目录路径。
//nodesDir: '/home/nol/.node-red/nodes',
/*******************************************************************************
* 安全设置
* - adminAuth: 管理员认证
* - https: HTTPS设置
* - httpsRefreshInterval: HTTPS证书刷新间隔
* - requireHttps: 是否强制使用HTTPS
* - httpNodeAuth: HTTP节点认证
* - httpStaticAuth: 静态HTTP资源认证
******************************************************************************/
// 要对Node-RED编辑器和管理员API进行密码保护,可以使用以下属性。
// 详细信息请参见 https://nodered.org/docs/security.html。
// 注意:这是一个注释示例,实际使用中需要取消注释并根据需要配置管理员认证。
// password 生成
// Node-RED 安装目录下,使用以下命令:(密码123456 生成密文)
// node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" 123456
//adminAuth: {
// type: "credentials", // 认证类型,这里使用的是凭据认证
// users: [{ // 用户列表
// username: "admin", // 用户名
// password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", // 加密后的密码,通常使用bcrypt等库生成
// permissions: "*" // 权限,'*'表示拥有所有权限
// }]
//},
/** 可以使用以下属性来启用HTTPS
* 这个属性可以是一个对象,包含(私钥)和(公钥)证书,或者是一个返回这样对象的函数。
* 请参阅http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener
* 了解其内容的详细信息。
*/
/** 选项1:静态对象 */
//https: {
// key: require("fs").readFileSync('privkey.pem'),
// cert: require("fs").readFileSync('cert.pem')
//},
/** 选项2:返回HTTP配置对象的函数 */
// https: function() {
// // 此函数应返回选项对象,或者一个解析为选项对象的Promise
// return {
// key: require("fs").readFileSync('privkey.pem'),
// cert: require("fs").readFileSync('cert.pem')
// }
// },
/** 如果`https`设置是一个函数,则可以使用以下设置
* 来设置函数被调用的频率(以小时为单位)。这可以用于刷新任何证书。
*/
//httpsRefreshInterval : 12,
/** 可以使用以下属性来导致不安全的HTTP连接
* 被重定向到HTTPS。
*/
//requireHttps: true,
/** 为了对节点定义的HTTP端点(httpNodeRoot)进行密码保护,
* 包括node-red-dashboard,或静态内容(httpStatic),
* 可以使用以下属性。
* `pass`字段是密码的bcrypt哈希。
* 请参阅https://nodered.org/docs/security.html#generating-the-password-hash
*/
//httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
//httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
/*******************************************************************************
* 服务器设置
* - uiPort 用户界面端口
* - uiHost 用户界面主机
* - apiMaxLength API 最大长度
* - httpServerOptions HTTP 服务器选项
* - httpAdminRoot 管理界面HTTP根路径
* - httpAdminMiddleware 管理界面HTTP 中间件
* - httpNodeRoot 节点 HTTP 根路径
* - httpNodeCors 节点 HTTP 跨源资源共享
* - httpNodeMiddleware 节点 HTTP 中间件
* - httpStatic 静态 HTTP 服务
* - httpStaticRoot 静态 HTTP 根目录
******************************************************************************/
/** Node-RED web服务器监听的TCP端口 */
uiPort: process.env.PORT || 1880,
/** 默认情况下,Node-RED的用户界面接受所有IPv4接口上的连接。
* 要监听所有IPv6地址,请将uiHost设置为"::",
* 下面的属性可以用于监听特定的接口。例如,以下设置将只允许来自本地机器的连接。
*/
//uiHost: "127.0.0.1",
/** 运行时API将接受的最大HTTP请求大小。
* 默认值:5mb
*/
//apiMaxLength: '5mb',
/** 下面的属性可用于将自定义选项传递给Node-RED使用的Express.js服务器。
* 要获取可用选项的完整列表,请参阅http://expressjs.com/en/api.html#app.settings.table
*/
//httpServerOptions: { },
/** 默认情况下,Node-RED的用户界面可通过http://localhost:1880/访问
* 下面的属性可用于指定不同的根路径。
* 如果设置为false,则禁用此功能。
*/
//httpAdminRoot: '/admin',
/** 下面的属性可用于在所有管理员http路由之前添加一个自定义的中间件函数。
* 例如,设置自定义的http头。它可以是一个单独的函数或中间件函数的数组。
*/
// httpAdminMiddleware: function(req,res,next) {
// // 设置X-Frame-Options头以限制编辑器可以嵌入的位置
// //res.set('X-Frame-Options', 'sameorigin');
// next();
// },
/** 一些节点,如HTTP In,可用于监听传入的http请求。
* 默认情况下,这些请求相对于'/'路径提供服务。以下属性可用于指定不同的根路径。如果设置为false,则禁用此功能。
*/
//httpNodeRoot: '/red-nodes',
/** 以下属性可用于配置HTTP节点中的跨域资源共享(CORS)。
* 请参阅https://github.com/troygoode/node-cors#configuration-options以获取其内容的详细信息。以下是一个基本的许可选项集:
*/
//httpNodeCors: {
// origin: "*", // 允许所有来源访问
// methods: "GET,PUT,POST,DELETE" // 允许的HTTP方法
//},
/** 如果您需要设置HTTP代理,请在Node-RED外部的操作系统中设置名为http_proxy(或HTTP_PROXY)的环境变量。
* 例如 - http_proxy=http://myproxy.com:8080
* (在这里设置将无效)
* 您还可以指定no_proxy(或NO_PROXY)来提供一个逗号分隔的域名列表,这些域名不需要代理,例如 - no_proxy=.acme.co,.acme.co.uk
*/
/** 以下属性可用于在所有http in节点之前添加一个自定义的中间件函数。
* 这允许对所有http in节点应用自定义的身份验证,或任何其他类型的常见请求处理。
* 它可以是一个单独的函数或一个中间件函数的数组。
*/
//httpNodeMiddleware: function(req,res,next) {
// // 处理/拒绝请求,或者通过调用next()将其传递给http in节点;
// // 可选地跳过我们的rawBodyParser,通过将此值设置为true来实现;
// //req.skipRawBodyParser = true;
// next(); // 继续处理请求
//},
/** 当使用 httpAdminRoot 将用户界面移动到不同的根路径时,
* 下面的属性可以用来标识应该在 http://localhost:1880/ 上提供服务的静态内容目录。
* 如果 httpStaticRoot 与 httpAdminRoot 设置不同,则无需移动 httpAdminRoot。
*/
//httpStatic: '/home/nol/node-red-static/', // 单个静态资源源
/**
* 或者可以使用对象数组创建多个静态资源...
* 每个对象还可以包含一个选项对象以进行进一步配置。
* 可用的选项请参见:https://expressjs.com/en/api.html#express.static
*/
//httpStatic: [
// {path: '/home/nol/pics/', root: "/img/"},
// {path: '/home/nol/reports/', root: "/doc/"},
// {path: '/home/nol/videos/', root: "/vid/", options: {maxAge: '1d'}}
//],
/**
* 所有静态路由都将附加到 httpStaticRoot
* 例如,如果 httpStatic = "/home/nol/docs" 且 httpStaticRoot = "/static/"
* 那么 "/home/nol/docs" 将在 "/static/" 提供服务
* 例如,如果 httpStatic = [{path: '/home/nol/pics/', root: "/img/"}]
* 且 httpStaticRoot = "/static/"
* 那么 "/home/nol/pics/" 将在 "/static/img/" 提供服务
*/
// httpStaticRoot: '/static/',
/*******************************************************************************
* 运行时设置
* - lang 语言
* - runtimeState 运行时状态
* - diagnostics 诊断信息
* - logging 日志记录
* - contextStorage 上下文存储
* - exportGlobalContextKeys 导出全局上下文键
* - externalModules 外部模块
******************************************************************************
/** 若要使用您偏好的语言运行Node-RED,请取消以下注释。
* 可用的语言包括:en-US(默认)、ja、de、zh-CN、zh-TW、ru、ko
* 其中一些语言的完成度可能高于其他语言。
*/
// lang: "de",
/** 配置故障诊断选项
* - enabled: 当 `enabled` 设置为 `true`(或未设置)时,诊断数据将可通过
* http://localhost:1880/diagnostics 访问
* - ui: 当 `ui` 设置为 `true`(或未设置),已登录Node-RED编辑器的用户将可执行
* `show-system-info` 操作
*/
diagnostics: {
/** 启用或禁用诊断端点。必须设为 `false` 才能禁用 */
enabled: true,
/** 显示或隐藏在Node-RED编辑器中的诊断信息。必须设为 `false` 才能隐藏 */
ui: true,
},
/** 配置运行时状态选项
* - enabled: 当 `enabled` 设为 `true` 时,通过 POST 请求到
* http://localhost:1880/flows/state 可启动/停止流程
* - ui: 当 `ui` 设为 `true`,已登录Node-RED编辑器的用户将可执行
* `core:start-flows` 和 `core:stop-flows` 操作
* 此外,若部署菜单设置为默认值,将显示停止或启动按钮
*/
runtimeState: {
/** 启用或禁用 flows/state 端点。必须设为 `false` 才能禁用 */
enabled: false,
/** 显示或隐藏在Node-RED编辑器中的运行时启动/停止选项。必须设为 `false` 才能隐藏 */
ui: false,
},
/** 配置日志输出设置 */
logging: {
/** 当前仅支持控制台日志记录 */
console: {
/** 设置要记录的日志级别。选项包括:
* fatal - 仅记录导致应用程序无法使用的错误
* error - 记录针对特定请求视为致命的错误 + 致命错误
* warn - 记录非致命问题 + 错误 + 致命错误
* info - 记录应用程序运行的一般信息 + 警告 + 错误 + 致命错误
* debug - 记录比info更详细的信息 + 信息 + 警告 + 错误 + 致命错误
* trace - 记录非常详尽的调试信息 + 调试 + 信息 + 警告 + 错误 + 致命错误
* off - 关闭所有日志记录(不影响度量或审计)
*/
level:"info",
/** 是否在日志输出中包含度量事件 */
metrics: false,
/** 是否在日志输出中包含审计事件 */
audit:false
}
},
/** 上下文存储
* 下面的属性用于启用上下文存储。此处提供的配置将启用基于文件的上下文存储,每30秒刷新到磁盘一次。
* 有关更多选项,请参阅文档:https://nodered.org/docs/api/context/
*/
//contextStorage: {
// default: {
// module:"localfilesystem"
// },
//},
/** `global.keys()` 方法返回在全局上下文中设置的所有属性列表。
* 这使得它们能够在编辑器中的上下文侧边栏中显示出来。
* 在某些情况下,不希望将它们暴露给编辑器。可以使用以下属性来隐藏在 `functionGlobalContext` 中设置的任何属性,
* 使其不会被 `global.keys()` 列出。
* 默认情况下,该属性被设置为 false,以防止意外暴露其值。将其设置为 true 将导致这些键被列出。
*/
exportGlobalContextKeys: false,
/** 配置运行时如何处理外部npm模块。
* 这包括:
* - 编辑器是否允许安装新的节点模块
* - 是否允许诸如函数节点之类的节点拥有自己的动态配置依赖项。
* 使用 allow/denyList 选项可以限制运行时将安装/加载哪些模块。它可使用 '*' 作为通配符匹配任何内容。
*/
externalModules: {
// autoInstall: false, /** 是否让运行时尝试自动安装缺失的模块 */
// autoInstallRetry: 30, /** 重试安装之间的时间间隔(单位:秒) */
// palette: { /** 配置调色板管理器 */
// allowInstall: true, /** 在编辑器中启用调色板管理器 */
// allowUpdate: true, /** 允许在调色板管理器中更新模块 */
// allowUpload: true, /** 允许上传并安装模块tgz文件 */
// allowList: ['*'], /** 允许安装/更新列表,'*' 表示全部允许 */
// denyList: [], /** 禁止安装/更新列表 */
// allowUpdateList: ['*'], /** 允许更新的模块列表,'*' 表示全部允许 */
// denyUpdateList: [] /** 禁止更新的模块列表 */
// },
// modules: { /** 配置节点指定的模块 */
// allowInstall: true,
// allowList: [],
// denyList: []
// }
},
/*******************************************************************************
* 编辑器设置
* - disableEditor 禁用编辑器
* - editorTheme 编辑器主题
******************************************************************************/
/** 下面的属性可用于禁用编辑器。此选项不影响管理API。要同时禁用编辑器和管理API,请使用httpRoot或httpAdminRoot属性 */
//disableEditor: false,
/** 自定义编辑器设置
* 有关所有可用选项,请参阅 https://nodered.org/docs/user-guide/runtime/configuration#editor-themes
*/
editorTheme: {
/** 下面的属性可以用来为编辑器设置自定义主题。
* 可以从 https://github.com/node-red-contrib-themes/theme-collection 中选择一系列主题
*/
//theme: "",
/** 若要禁用在每个Node-RED版本首次访问编辑器时显示的“欢迎使用Node-RED”引导教程,将此值设为false */
//tours: false,
palette: {
/** 下面的属性可以用于设置编辑器调色板中类别的顺序。
* 如果节点所属的类别不在列表中,则该类别将被添加到调色板的末尾。
* 若未设置,默认顺序如下:
*/
//categories: ['子流程', '常用', '函数', '网络', '序列', '解析器', '存储'],
// categories: ['subflows', 'common', 'function', 'network', 'sequence', 'parser', 'storage']
},
projects: {
/** 若要启用项目功能,请将此值设为true */
enabled: false,
workflow: {
/** 设置项目的默认工作流模式。
* - manual - 您必须手动提交更改
* - auto - 更改会自动提交
* 可以通过编辑器内“用户设置”的“Git配置”部分按用户覆盖此项设置
*/
mode: "manual"
}
},
codeEditor: {
/** 选择编辑器使用的文本编辑组件。
* 自Node-RED V3版本起,默认设置为"monaco",但可根据需要设置为"ace"
*/
lib: "monaco",
options: {
/** 下列选项仅在编辑器设置为"monaco"时适用
*
* theme - 主题名称必须与 packages/node_modules/@node-red/editor-client/src/vendor/monaco/dist/theme 目录下主题文件名匹配
* 例如:"tomorrow-night", "upstream-sunburst", "github", "my-theme"
*/
// theme: "vs",
/** 可以设置其他自定义项,如字体大小、字体家族、连字等。
* 全部选项列表请参阅:https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html
*/
//fontSize: 14,
//fontFamily: "Cascadia Code, Fira Code, Consolas, 'Courier New', monospace",
//fontLigatures: true,
}
},
markdownEditor: {
mermaid: {
/** 启用或禁用Markdown文档中的Mermaid图表功能
*/
enabled: true
}
},
},
/*******************************************************************************
* 节点设置
* - fileWorkingDirectory 文件节点工作目录
* - functionGlobalContext 函数全局上下文
* - functionExternalModules 函数外部模块
* - functionTimeout 函数超时时间
* - nodeMessageBufferMaxLength 节点消息缓冲区最大长度
* - ui (for use with Node-RED Dashboard) 用户界面(用于 Node-RED Dashboard)
* - debugUseColors 调试使用颜色
* - debugMaxLength 调试信息最大长度
* - execMaxBufferSize 执行最大缓冲区大小
* - httpRequestTimeout HTTP 请求超时时间
* - mqttReconnectTime MQTT 重新连接时间
* - serialReconnectTime 串行重新连接时间
* - socketReconnectTime 套接字重新连接时间
* - socketTimeout 套接字超时时间
* - tcpMsgQueueSize TCP 消息队列大小
* - inboundWebSocketTimeout 入站 WebSocket 超时时间
* - tlsConfigDisableLocalFiles TLS 配置禁用本地文件
* - webSocketNodeVerifyClient WebSocket 节点验证客户端
******************************************************************************/
/** 用于处理文件节点内部相对路径的工作目录(如读取文件、写入文件等),默认为Node-RED进程的工作目录 */
// 当读取文件、写入文件等使用相对路径时Node-RED 将从这个目录开始查找文件
//fileWorkingDirectory: "",
/** 允许函数节点直接加载额外的npm模块 */
functionExternalModules: true,
/** 函数节点默认超时时间(单位:秒)。0表示不应用超时 */
functionTimeout: 0,
/** 下面的属性可用于设置全局上下文中的预定义值。
* 这样可以在函数节点中使额外的node模块可用。
* 例如,以下配置:
* functionGlobalContext: { os:require('os') }
* 将允许在函数节点中通过如下方式访问`os`模块:
* global.get("os")
*/
functionGlobalContext: {
// os:require('os'),
},
/** 节点在操作过程中内部缓冲的最大消息数量。这适用于一系列处理消息序列的节点。
* 默认情况下不限制。值为0也意味着不设上限。
*/
//nodeMessageBufferMaxLength: 0,
/** 如果您已安装可选的node-red-dashboard组件,可以在此设置其相对于httpNodeRoot的路径
* 其他可选属性包括
* readOnly:{布尔值},
* middleware:{函数或数组}, (req,res,next) - HTTP中间件
* ioMiddleware:{函数或数组}, (socket,next) - socket.io中间件
*/
//ui: { path: "ui" },
/** 对调试节点控制台输出进行着色 */
//debugUseColors: true,
/** 发送到调试侧边栏标签的消息最大长度(以字符计) */
debugMaxLength: 1000,
/** exec节点的最大缓冲区大小,默认为10MB */
//execMaxBufferSize: 10000000,
/** HTTP请求连接的超时时间(单位:毫秒)。默认为120秒 */
//httpRequestTimeout: 120000,
/** MQTT连接重试时间(单位:毫秒) */
mqttReconnectTime: 15000,
/** 串口连接重试时间(单位:毫秒) */
serialReconnectTime: 15000,
/** TCP套接字连接重试时间(单位:毫秒) */
//socketReconnectTime: 10000,
/** TCP服务器套接字连接的超时时间(单位:毫秒)。默认无超时 */
//socketTimeout: 120000,
/** 在尝试连接到TCP套接字时,队列中等待的最大消息数量,默认为1000条 */
//tcpMsgQueueSize: 2000,
/** 对于不匹配任何已配置节点的入站WebSocket连接,在此时间内未完成连接将断开(单位:毫秒),默认值为5000毫秒 */
//inboundWebSocketTimeout: 5000,
/** 若要禁用在TLS配置节点中使用本地文件存储密钥和证书的选项,请将此值设为true。 */
//tlsConfigDisableLocalFiles: true,
/** 下面的属性可用于验证WebSocket连接尝试。
* 这样可以实现对HTTP请求头进行检查,确保其中包含了有效的认证信息。
*/
//webSocketNodeVerifyClient: function(info) {
// /** 'info' 对象包含三个属性:
// * - origin : Origin 请求头的值
// * - req : HTTP 请求对象
// * - secure : 如果 req.connection.authorized 或 req.connection.encrypted 已设置,则为 true
// *
// * 函数应根据连接是否应该被接受返回 true 或 false。
// *
// * 另外,如果该函数定义为接受第二个参数 callback,则可用来异步验证客户端。
// * callback 函数接收三个参数:
// * - result : 布尔值,表示是否接受连接
// * - code : 若结果为 false,则为要返回的HTTP错误状态码
// * - reason: 若结果为 false,则为要返回的HTTP错误原因字符串
// */
//},
}
node-red setting.js 中文文档 由ai翻译
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...