最近在搭建自己的博客,这一段时间可能没有时间来写博客了,但是有了好东西还是要分享给大家。博客网站必然要有编辑文章的编辑器,所以在网上查了些资料。大部分编辑器的后台是基于java、php、asp等,很少有基于node.js的。本来是想用markdown来写文章,但是样式不好调,所以最终还是选择了百度的ueditor,其官网上并没有基于node.js的代码。但是幸运的是我在github上找到了一个类似的,所以将他分享给大家,如果你打算也用node.js来开发自己的博客时可以参考下。
下载引用:
首先到ueditor官网上下载代码,我下载的是开发版1.4.3php utf-8版本,解压之后将文件放到public目录下,此处我将其重命名为ueditor。然后在你所需要的页面头部加上这三行
复制代码 代码如下:
然后在需要的地方调用下面的代码
复制代码 代码如下:
后台修改:
下载下来的是基于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编辑器的全部内容了,希望大家能够喜欢。
