Home > Web Front-end > JS Tutorial > body text

How to configure ueditor using nodejs+mongodb+vue

亚连
Release: 2018-06-14 10:29:20
Original
1226 people have browsed it

This article mainly introduces the sample code for configuring ueditor in nodejs mongodb vue front and backend. Now I share it with you and give it as a reference.

When I was working on a personal blog project, I needed a rich text box input component to interact with the background, but there was no official configuration about nodejs, so I checked the information and researched it myself, and finally applied it to the system. .

1. Backend configuration

First of all, I found this project: https://github.com/netpi/ueditor, you can apply ueditor through its open source code On the node, the approximate method is as follows:

1. Install dependencies first:

npm install ueditor --save
Copy after login

2. Configure Node settings

//引入接口文件
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......')
Copy after login

What needs to be noted here is that ueditor has been required. So the plug-in has been installed in node_module, so there is no need to copy additional files. You only need to create a new public folder under this directory to store the data returned to the background. In addition, you also need to introduce the configuration file config.json

2. Front-end configuration

The front-end configuration of vue requires downloading the ueditor file and placing it in the directory. I placed it in the static folder and introduced it in the vue entry file. ueditor file:

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'
Copy after login

It is worth mentioning that the directory in the ueditor.config.js file needs to be configured as the directory where the plug-in is placed:

window.UEDITOR_HOME_URL = "/static/UE/"
Copy after login

Then configure it in the component

My UE.vue component:

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

<script>
 export default {
  name: &#39;UE&#39;,
  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>
Copy after login

Introduction method:

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

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

Then you can successfully configure the basic functions of ueditor

3. Front-end and back-end request proxy

In the vue dev environment, you can set the proxyTable of webpack to forward the back-end request proxy, and you can easily debug the file upload function. In the same way, the files after vue build need to use Node to proxy the static files to the same port as the backend before requesting the backend port

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future. .

Related articles:

Issues related to file loading optimization in js

How to build a small program backend in Node.js Service

How to introduce ueditor and node background configuration using vue

The above is the detailed content of How to configure ueditor using nodejs+mongodb+vue. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!