美文网首页
node-red setting.js 中文文档 由ai翻译

node-red setting.js 中文文档 由ai翻译

作者: 阿杰_96c5 | 来源:发表于2024-03-03 15:37 被阅读0次
    /**
     * 本文由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翻译

          本文链接:https://www.haomeiwen.com/subject/bvnkzdtx.html