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
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......')
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'
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/"
Then configure it in the component
My UE.vue component:
<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>
Introduction method:
<UE :defaultMsg=defaultMsg :config=config :id=ue1 ref="ue"></UE> data() { return { defaultMsg: "", image: "", config: { initialFrameWidth: null, initialFrameHeight: 350 }, ue1: "ue1" }; },
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!