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(三)--- Node.js模块
May 25 NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
NodeJs中express框架的send()方法简介
Jun 20 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
详解nodejs http请求相关总结
Mar 31 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 NodeJs
NodeJs实现简易WEB上传下载服务器
Aug 10 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 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&amp;mysql(一)
2006/10/09 PHP
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
jquery的index方法实现tab效果
2011/02/16 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
Python学习思维导图(必看篇)
2017/06/26 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
先进工作者个人总结
2015/02/15 职场文书
老人院义工活动感想
2015/08/07 职场文书
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技