ueditor使用node后台,返回req.ueditor 为undefined

发布于 2022-09-11 15:31:00 字数 2157 浏览 18 评论 0

问题描述

今天用ueditor做富文本编辑器,后台是 node-express,参考https://github.com/netpi/ueditor 大佬的案例,在返回的时候req.ueditor打印结果为undefined。
clipboard.png

问题出现的环境背景及自己尝试过哪些方法

看了官网下载的ueditor的版本为1.4.3.3和大佬的版本是一样的。又看了下引用的类库let ueditor = require("ueditor")版本为1.2.3,不知道有没有影响(试过了切换别的没感觉到有什么影响,或者我没发现)。我又在ueditor的index.js断点调试了一下,发现在busboy.on()的时候直接跳过了,路过的大神帮忙看下原因,小弟感激不尽。
clipboard.png

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
我的代码:

let ueditor = require("ueditor")
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// /upload 入口地址配置 https://github.com/netpi/ueditor/blob/master/example/public/ueditor/ueditor.config.js
// 官方例子是这样的 serverUrl: URL + "php/controller.php"
// 我们要把它改成 serverUrl: URL + 'ue'
app.use("/static/ueditor/ue", ueditor(path.join(__dirname, '../public/upload'), function(req, res, next) {
  // upload 客户发起上传图片请求
  console.log('ueditor',req.ueditor)
  if(req.query.action === 'uploadimage'){
    // 这里你可以获得上传图片的信息
    var foo = req.ueditor;
    console.log(foo.filename); // exp.png
    console.log(foo.encoding); // 7bit
    console.log(foo.mimetype); // image/png

    // 下面填写你要把图片保存到的路径 ( 以 path.join(__dirname, '../public/upload') 作为根路径)
    var img_url ='/img/';
    res.ue_up(img_url); //你只要输入要保存的地址 。保存操作交给ueditor来做
  }else if (req.query.action === 'listimage'){//  客户端发起图片列表请求
    var dir_url =  '/img/'; // 要展示给客户端的文件夹路径
    res.ue_list(dir_url) // 客户端会列出 dir_url 目录下的所有图片
  }else {// 客户端发起其它请求
    res.setHeader('Content-Type', 'application/json');
    // 这里填写 ueditor.config.json 这个文件的路径
    // let configPath = path.join(__dirname, '../static/ueditor/') + 'ueditor.config.json';
    // console.log('configPath',configPath)
    res.redirect('/ueditor/ueditor.config.json');
  }})
);


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何以笙箫默 2022-09-18 15:31:00

后台接口什么的我觉得是没有问题的,因为我在 ueditor里面配置了后台的接口,所以应该是没问题的,现在情况是没有任何的报错信息,但是图片就是上传不了,一直在加载中,不管是单图还是多图,只是感觉后台的接口没有响应,之前的断点也显示了,直接就没有执行busboy.on()的方法,直接就req.pipe(busboy)退出了,所以导致console.log('ueditor',req.ueditor)的返回结果为udefined,但是不知道为什么没有执行busboy的上传图片的方法

clipboard.png

clipboard.png

clipboard.png

这样的小城市 2022-09-18 15:31:00

我用的github上的demo,把你代码换上去试了下,提示后端配置项没有正常加载,上传插件不能正常使用!,然后我把配置换成github上的默认配置,可以正常加载出上传按钮,req.ueditor也有值了.只是还是无法走到上传的断点,然后我把看了下github上的例子是写了三个条件,我把判断条件也换过来试了下,就可以了,然后我在看了下action的值是uploadfile,原来我用的是附件上传,就算传的是图片,也直接判断是uploadfile类型.排除完,剩下的可能应该就是你配置的问题了.

修改完的代码,总共改了三行,可以正常使用了,你可以尝试替换看看,详细研究研究例子中的配置.
有别的情况在交流

app.use("/ueditor/ue", ueditor(path.join(__dirname, 'public'), function(req, res, next) { //这个把 /static/ueditor/ue 改为 /ueditor/ue , 把 ../public/upload 改为 public
  
  if(req.query.action === 'uploadimage'){
    ...
  }else if (req.query.action === 'listimage'){
    ...
  }else {
    ...
    // res.redirect('/ueditor/ueditor.config.json');    // 注释掉你原先的配置
    res.redirect('/ueditor/nodejs/config.json');        // 使用 github 上例子的配置
  }})
);

图片描述

补充
刚刚我把第一行的路径都随便乱填了下,也能顺利拿到到值.如果光看你给的这些代码,应该就是配置的问题了.当然也有可能是之外的其他代码的问题.那就暂时无从判断了.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文