Node.js 无法读取 XHR2 FormData 数据

Posted

技术标签:

【中文标题】Node.js 无法读取 XHR2 FormData 数据【英文标题】:Node.js can't read XHR2 FormData data 【发布时间】:2013-02-24 02:12:27 【问题描述】:

在客户端我使用 XHR2 Formdata 在 ajax 中上传文件:

var send = function (file) 
        var xhr = new XMLHttpRequest();
        xhr.file = file; 
        xhr.open('post', '/upload', true);
        xhr.send(file);     


var fd = new FormData();
fd.append('image', _file); // the _file is my file 

xhr.send(fd);

在 node.js 服务器中:

app.configure(function()
    app.use(express.bodyParser(
        uploadDir: "public/images",
        keepExtensions: true,
        limit: 10000000, /* 10M  10*1000*1000 */  
        defer: true 
    ));
    app.use(express.static(__dirname + "/public"));
);



app.post("/upload", function (req, res) 
    console.log(req.files);
    console.log(req.body);

    res.send("ok");
)

奇怪的是,文件可以上传成功,却无法记录req.filesreq.body的信息,都是空对象

那么如何获取上传文件的信息,例如保存路径、大小或名称?

【问题讨论】:

【参考方案1】:

我尝试删除“defer: true”配置,它对我有用。

【讨论】:

以上是关于Node.js 无法读取 XHR2 FormData 数据的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取未定义的属性“获取”(Node.js)

JavaScript、Discord.js、Node.js 类型错误:无法读取未定义的属性“执行”

无法在 ejs 文件 (node.js) 中读取 null 的属性“名称”

Node.js + Discord.js:无法读取未定义的属性“类”

node.js/discord.js:TypeError:无法读取 null 的属性“setPresence”

无法读取 Node JS 中未定义的属性“名称”