node.js集成百度UE编辑器


Posted in Javascript onFebruary 05, 2015

摘要:

最近在搭建自己的博客,这一段时间可能没有时间来写博客了,但是有了好东西还是要分享给大家。博客网站必然要有编辑文章的编辑器,所以在网上查了些资料。大部分编辑器的后台是基于java、php、asp等,很少有基于node.js的。本来是想用markdown来写文章,但是样式不好调,所以最终还是选择了百度的ueditor,其官网上并没有基于node.js的代码。但是幸运的是我在github上找到了一个类似的,所以将他分享给大家,如果你打算也用node.js来开发自己的博客时可以参考下。

下载引用:

首先到ueditor官网上下载代码,我下载的是开发版1.4.3php utf-8版本,解压之后将文件放到public目录下,此处我将其重命名为ueditor。然后在你所需要的页面头部加上这三行

<script type="text/javascript" charset="utf-8" src="/ueditor/ueditor.config.js"></script>

<script type="text/javascript" charset="utf-8" src="/ueditor/ueditor.all.min.js"> </script>

<script type="text/javascript" charset="utf-8" src="/ueditor/lang/zh-cn/zh-cn.js"> </script>

然后在需要的地方调用下面的代码

<script id="editor" type="text/plain" style="width:1000px;height:500px;"></script>

<script>

    var ue = UE.getEditor('editor');

</script>

后台修改:

下载下来的是基于php的,现在我们来改成基于node.js的。首先把不用的php文件删除掉,然后新建文件夹nodejs,并在此目录下新建文件config.json,内容如下:

/* 前后端通信相关的配置,注释只允许使用多行方式 */

{

    /* 上传图片配置项 */

    "imageActionName": "uploadimage", /* 执行上传图片的action名称 */

    "imageFieldName": "upfile", /* 提交的图片表单名称 */

    "imageMaxSize": 2048000, /* 上传大小限制,单位B */

    "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */

    "imageCompressEnable": true, /* 是否压缩图片,默认是true */

    "imageCompressBorder": 1600, /* 图片压缩最长边限制 */

    "imageInsertAlign": "none", /* 插入的图片浮动方式 */

    "imageUrlPrefix": "", /* 图片访问路径前缀 */

    "imagePathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

                                /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */

                                /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */

                                /* {time} 会替换成时间戳 */

                                /* {yyyy} 会替换成四位年份 */

                                /* {yy} 会替换成两位年份 */

                                /* {mm} 会替换成两位月份 */

                                /* {dd} 会替换成两位日期 */

                                /* {hh} 会替换成两位小时 */

                                /* {ii} 会替换成两位分钟 */

                                /* {ss} 会替换成两位秒 */

                                /* 非法字符 \ : * ? " < > | */

                                /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */

    /* 涂鸦图片上传配置项 */

    "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */

    "scrawlFieldName": "upfile", /* 提交的图片表单名称 */

    "scrawlPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

    "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */

    "scrawlUrlPrefix": "", /* 图片访问路径前缀 */

    "scrawlInsertAlign": "none",

    /* 截图工具上传 */

    "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */

    "snapscreenPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

    "snapscreenUrlPrefix": "", /* 图片访问路径前缀 */

    "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */

    /* 抓取远程图片配置 */

    "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],

    "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */

    "catcherFieldName": "source", /* 提交的图片列表表单名称 */

    "catcherPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

    "catcherUrlPrefix": "", /* 图片访问路径前缀 */

    "catcherMaxSize": 2048000, /* 上传大小限制,单位B */

    "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */

    /* 上传视频配置 */

    "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */

    "videoFieldName": "upfile", /* 提交的视频表单名称 */

    "videoPathFormat": "/ueditor/php/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

    "videoUrlPrefix": "", /* 视频访问路径前缀 */

    "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */

    "videoAllowFiles": [

        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",

        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */

    /* 上传文件配置 */

    "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */

    "fileFieldName": "upfile", /* 提交的文件表单名称 */

    "filePathFormat": "/ueditor/php/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

    "fileUrlPrefix": "", /* 文件访问路径前缀 */

    "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */

    "fileAllowFiles": [

        ".png", ".jpg", ".jpeg", ".gif", ".bmp",

        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",

        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",

        ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",

        ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"

    ], /* 上传文件格式显示 */

    /* 列出指定目录下的图片 */

    "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */

    "imageManagerListPath": "/ueditor/php/upload/image/", /* 指定要列出图片的目录 */

    "imageManagerListSize": 20, /* 每次列出文件数量 */

    "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */

    "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */

    "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */

    /* 列出指定目录下的文件 */

    "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */

    "fileManagerListPath": "/ueditor/php/upload/file/", /* 指定要列出文件的目录 */

    "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */

    "fileManagerListSize": 20, /* 每次列出文件数量 */

    "fileManagerAllowFiles": [

        ".png", ".jpg", ".jpeg", ".gif", ".bmp",

        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",

        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",

        ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",

        ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"

    ] /* 列出的文件类型 */

}

然后找到文件ueditor.config.js,找到下面这行,将后面引号改成你自己的后台路径。

serverUrl: URL + "php/controller.php"

比如:

serverUrl: URL + "ueditor"

我们需要安装下面这些包

"dependencies": {

    "body-parser": "~1.0.0",

    "express": "~4.2.0",

    "ueditor": "^1.0.0"

  }

后台代码:

var express = require('express');var path = require('path');

var app = express();

var ueditor = require("ueditor");

var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({

  extended: true

}));

app.use(bodyParser.json());

app.use("/ueditor/ueditor", ueditor(path.join(__dirname, 'public'), function(req, res, next) {

    // ueditor 客户发起上传图片请求

    if (req.query.action === 'uploadimage') {

        var foo = req.ueditor;

        var imgname = req.ueditor.filename;

        var img_url = '/images/ueditor/';

        //你只要输入要保存的地址 。保存操作交给ueditor来做

        res.ue_up(img_url); 

    }

    //  客户端发起图片列表请求

    else if (req.query.action === 'listimage') {

        var dir_url = '/images/ueditor/';

        // 客户端会列出 dir_url 目录下的所有图片

        res.ue_list(dir_url); 

    }

    // 客户端发起其它请求

    else {

        res.setHeader('Content-Type', 'application/json');

        res.redirect('/ueditor/nodejs/config.json');

    }

}));

注意:上面只是处理了图片上传的,视频上传的可以看官网API,仿照开发。

以上就是在nodejs项目中集成百度UE编辑器的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
扒一扒JavaScript 预解释
Jan 28 Javascript
jquery插件corner实现圆角边框的方法
Mar 09 Javascript
JavaScript控制按钮可用或不可用的方法
Apr 03 Javascript
jquery插件uploadify实现带进度条的文件批量上传
Dec 13 Javascript
分享JS数组求和与求最大值的方法
Aug 11 Javascript
详解jQuery中的事件
Dec 14 Javascript
详解JavaScript常量定义
Jan 03 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
Jul 10 Javascript
JavaScript实现密码强度实时验证
Mar 18 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
浅谈JS的原型和原型链
Jun 04 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 #Javascript
JavaScript计时器示例分析
Feb 05 #Javascript
编写自己的jQuery提示框(Tip)插件
Feb 05 #Javascript
使用pjax实现无刷新更改页面url
Feb 05 #Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 #Javascript
jquery手风琴特效插件
Feb 04 #Javascript
Jquery中find与each方法用法实例
Feb 04 #Javascript
You might like
PHP中怎样防止SQL注入分析
2014/10/23 PHP
PHP解析RSS的方法
2015/03/05 PHP
微信红包随机生成算法php版
2016/07/21 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
js比较和逻辑运算符的介绍
2013/03/10 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
python动态规划算法实例详解
2020/11/22 Python
JAVA软件工程师测试题
2014/07/25 面试题
四风问题自查报告剖析材料
2014/02/08 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
企业口号大全
2014/06/12 职场文书
办理收楼委托书范本
2014/10/09 职场文书
实习证明格式范文
2015/06/16 职场文书
MySQL中一条update语句是如何执行的
2022/03/16 MySQL
Go获取两个时区的时间差
2022/04/20 Golang
instantclient客户端 连接oracle数据库
2022/04/26 Oracle
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技
 python中的元类metaclass详情
2022/05/30 Python