Javascript Summernote图像&x2B;Node.js(Express.js)

Javascript Summernote图像&x2B;Node.js(Express.js),javascript,jquery,node.js,express,summernote,Javascript,Jquery,Node.js,Express,Summernote,关于如何在PHP端处理Summernote文件上传有太多的解决方案,但我找不到一个合适的解决方案来说明如何在Node.js中处理它 我的Javascript $(document).ready(function() { // $('#summernote').summernote(); $('#summernote').summernote({ height: 590, focus: true, callbacks: {

关于如何在PHP端处理Summernote文件上传有太多的解决方案,但我找不到一个合适的解决方案来说明如何在Node.js中处理它

我的Javascript

$(document).ready(function() {
    // $('#summernote').summernote();

    $('#summernote').summernote({
        height: 590,   
        focus: true,
        callbacks: {                                        
            onImageUpload : function(file, editor, welEditable) {
                saveFile(file[0], editor, welEditable);
            }
        }                                
    });

    function saveFile(file, editor, welEditable){
        console.log(file)
        data = new FormData();
        data.append("file", file);
        $.ajax({
            data: data,
            type: "POST",
            url: "/save/wiki",
            cache: false,
            contentType: false,
            processData: false,
            success: function(url) {
                console.log(url)
                editor.insertImage(welEditable, url);
            }
        });
    }
});
app.js

var express     = require('express');
var bodyParser  = require('body-parser');
var multer      = require('multer');
var path        = require('path');
var app         = express();


var jsonPrsr = bodyParser.json();                                        
var urlencodedPrsr = bodyParser.urlencoded({ extended: false });         
var routes = require('./routes')(app, jsonPrsr, urlencodedPrsr, multer); 
var port = process.env.PORT || 1337;                                     


app.listen(port, function(err){
    if(err){
        console.log("Server failed to start on port: "+port+". Description: ");
        console.log(err);
    }else console.log(port+'is ON')
});
module.exports = function(app, jsonParser, urlencodedParser, multer) {
    app.post('/save/wiki', urlencodedParser, function(req, res){
        if( typeof req.body != 'undefined' )
            console.log(req.body); // THIS RETURNS {} ie. empty
        var file_name = req.body.file;
        var upload, 
            upload_destination = './public';
            storage = multer.diskStorage({                                  
                 destination: function (req, file, callback) {
                     callback(null, upload_destination);
                  },
                  filename: function (req, file, callback) {
                      callback(null, file.fieldname + '-' +Date.now());
                  }
             });

        upload = multer({ storage : storage}).single(file_name);

        upload(req,res,function(err) {
            if(err) 
                res.send("Error uploading file.");
            else
                res.send("File is uploaded");
            res.end();
        });
    });
}
routes.js

var express     = require('express');
var bodyParser  = require('body-parser');
var multer      = require('multer');
var path        = require('path');
var app         = express();


var jsonPrsr = bodyParser.json();                                        
var urlencodedPrsr = bodyParser.urlencoded({ extended: false });         
var routes = require('./routes')(app, jsonPrsr, urlencodedPrsr, multer); 
var port = process.env.PORT || 1337;                                     


app.listen(port, function(err){
    if(err){
        console.log("Server failed to start on port: "+port+". Description: ");
        console.log(err);
    }else console.log(port+'is ON')
});
module.exports = function(app, jsonParser, urlencodedParser, multer) {
    app.post('/save/wiki', urlencodedParser, function(req, res){
        if( typeof req.body != 'undefined' )
            console.log(req.body); // THIS RETURNS {} ie. empty
        var file_name = req.body.file;
        var upload, 
            upload_destination = './public';
            storage = multer.diskStorage({                                  
                 destination: function (req, file, callback) {
                     callback(null, upload_destination);
                  },
                  filename: function (req, file, callback) {
                      callback(null, file.fieldname + '-' +Date.now());
                  }
             });

        upload = multer({ storage : storage}).single(file_name);

        upload(req,res,function(err) {
            if(err) 
                res.send("Error uploading file.");
            else
                res.send("File is uploaded");
            res.end();
        });
    });
}
我的问题是

控制台日志(请求主体)正在返回空对象{}。没有文件

我想要

将在Summernote编辑器中触发的文件上载到目录
'./public'

谁能告诉我丢失了什么?还是哪里出了问题

谢谢

试试,上传文件的一些好例子

var express = require('express'),
    multer  = require('multer')

var app = express()
app.use(multer({ dest: './uploads/'}))

app.get('/', function(req, res){
  res.send('hello world');
});

app.post('/', function(req, res){
    console.log(req.body) // form fields
    console.log(req.files) // form files
    res.status(204).end()
});

app.listen(3000);

你用错了multer,看一下文档。我可以检查multer,但我甚至无法在服务器端获取上传的文件。我收到{}请求当您正确设置multer时,您的文件将在
req.file
中,而不是
req.body
。哦,好的,谢谢,如果可能的话,您能写下您的答案吗?我是express.js的新手。你的回答对我很有帮助