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

/**
 * 本文由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错误原因字符串
    //    */
    //},
} 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350