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中的非阻塞方法介绍
Jun 05 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
详解Nodejs内存治理
May 13 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
关于NodeJS中的循环引用详解
Jul 23 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 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
php 远程图片保存到本地的函数类
2008/12/08 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
php的4种常用运行方式详解
2016/12/22 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
Element Dropdown下拉菜单的使用方法
2020/07/26 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
Python实现购物程序思路及代码
2017/07/24 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Python实现按中文排序的方法示例
2018/04/25 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
python实现自动化上线脚本的示例
2019/07/01 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
毕业自我鉴定
2013/11/05 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
个人作风建设自查报告
2014/10/22 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
学历证明样本
2015/06/16 职场文书