nodejs+mongodb+vue前后台配置ueditor的示例代码


Posted in NodeJs onJanuary 02, 2018

笔者在做一个个人博客项目的时候需要一个富文本框输入组件与后台进行交互,但是官方配置里面没有关于nodejs的,于是自己查阅资料研究了一下,最后终于应用到了系统中。

一、后台配置

首先是找到了这个项目:https://github.com/netpi/ueditor,可以通过他开源的代码将ueditor应用的node上面,大概方法如下:

1.先安装依赖:

npm install ueditor --save

2. 配置Node设置

//引入接口文件
const api = require('./api');
//引入文件模块
const fs = require('fs');
//引入处理路径模块
const path = require('path');
//引入处理post数据模块
var bodyParser = require('body-parser');

//引入express
const express = require('express');
const app = express();
//引入ueditor
const ueditor = require("ueditor")

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

//更改限定大小
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
// parse application/json
app.use(bodyParser.json())
app.use(api)

app.use("/ueditor/ue", ueditor(path.join(__dirname, 'public'), function(req, res, next) {
  //客户端上传文件设置
  var imgDir = '/img/ueditor/'
  var ActionType = req.query.action;
  if (ActionType === 'uploadimage' || ActionType === 'uploadfile' || ActionType === 'uploadvideo') {
    var file_url = imgDir; //默认图片上传地址
    /*其他上传格式的地址*/
    if (ActionType === 'uploadfile') {
      file_url = '/file/ueditor/'; //附件
    }
    if (ActionType === 'uploadvideo') {
      file_url = '/video/ueditor/'; //视频
    }
    res.ue_up(file_url); //你只要输入要保存的地址 。保存操作交给ueditor来做
    res.setHeader('Content-Type', 'text/html');
  }
  // 客户端发起图片列表请求
  else if (req.query.action === 'listimage') {
    var dir_url = imgDir;
    res.ue_list(dir_url); // 客户端会列出 dir_url 目录下的所有图片
  }
  // 客户端发起其它请求
  else {
    // console.log('config.json')
    res.setHeader('Content-Type', 'application/json');
    res.redirect('../nodejs/config.json');
  }
}));

//处理静态文件 todo
// 访问静态资源文件 这里是访问所有dist目录下的静态资源文件
app.use(express.static(path.resolve(__dirname, 'public/')))
app.use('/ueditor', function(req, res) {
  res.render('views/');
});

//监听8888端口
app.listen(8888);
console.log('sucess listen......')

这里需要注意的是因为已经require了ueditor,所以该插件已经安装到了node_module内,所以不需要再拷贝额外的文件了,只需要需要在这个目录下面新建public文件夹存放返回给后台的数据,另外,还需要引入配置文件config.json

二、前台配置

vue的前台配置需要下载ueditor的文件放在目录中,我将其放在了static文件夹中,在vue入口文件中引入ueditor的文件:

import '../static/UE/ueditor.config.js'
import '../static/UE/ueditor.all.min.js'
import '../static/UE/lang/zh-cn/zh-cn.js'
import '../static/UE/ueditor.parse.min.js'

值得一提的是需要将ueditor.config.js文件中的目录配置为放置该插件的目录:

window.UEDITOR_HOME_URL = "/static/UE/"

nodejs+mongodb+vue前后台配置ueditor的示例代码

然后在组件中配置好就可以了

我的UE.vue组件:

<template>
 <script :id=id type="text/plain"></script>
</template>

<script>
 export default {
  name: 'UE',
  data () {
   return {
    editor: null
   }
  },
  props: {
   defaultMsg: {
    type: String
   },
   config: {
    type: Object
   },
   id: {
    type: String
   },
  },
  mounted() {
   const _this = this;
   this.editor = UE.getEditor(this.id, this.config); // 初始化UE
   this.editor.addListener("ready", function () {
    _this.editor.setContent(_this.defaultMsg); // 确保UE加载完成后,放入内容。
   });
  },
  methods: {
   getUEContent() { // 获取内容方法
    return this.editor.getContent()
   }
  },
  destroyed() {
   this.editor.destroy();
  }
 }
</script>

引入方式:

<UE :defaultMsg=defaultMsg :config=config :id=ue1 ref="ue"></UE>

data() {
  return {
   defaultMsg: "",
   image: "",
   config: {
    initialFrameWidth: null,
    initialFrameHeight: 350
   },
   ue1: "ue1"
  };
 },

就可以成功配置好ueditor的基本功能了

三、前后台请求代理

在vue dev环境下可以设置webpack的proxyTable将后端请求代理转发,就可以轻松调试文件上传功能了,同理,vue build之后的文件则需要用Node将静态文件代理到和后端同一个端口上才可以请求后台端口

篇幅有限,文章可能讲述的不太清晰,具体的可以看我这个项目的代码:https://github.com/cheer4chai/myBlog

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
详谈nodejs异步编程
Dec 04 NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
解析NodeJs的调试方法
Dec 11 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
NodeJS配置HTTPS服务实例分享
Feb 19 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
nodejs制作小爬虫功能示例
Feb 24 NodeJs
NodeJs内存占用过高的排查实战记录
May 10 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 #NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 #NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 #NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 #NodeJs
nodejs实现简单的gulp打包
Dec 21 #NodeJs
nodejs调取微信收货地址的方法
Dec 20 #NodeJs
基于nodejs实现微信支付功能
Dec 20 #NodeJs
You might like
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
js实现下一页页码效果
2017/03/07 Javascript
原生js二级联动效果
2017/06/20 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
详解React中setState回调函数
2018/06/14 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
python3安装crypto出错及解决方法
2019/07/30 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
发展部经理职责规定
2014/02/22 职场文书
珠宝店促销方案
2014/03/21 职场文书
增值税发票丢失证明
2015/06/19 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
六年级作文之自救
2019/12/19 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python
详细了解MVC+proxy
2021/07/09 Java/Android