【发布时间】:2016-01-28 04:44:44
【问题描述】:
按照page 中的示例,我在节点上使用sails.js 创建了一个服务器,并带有一个端点以在服务器上上传文件。
完整代码如下:
req.file('file').upload({
maxBytes: 10000000,
dirname: './my-dir'
}, function whenDone (err, uploadedFiles) {
var fs = require('fs');
if (err) {
return res.negotiate(err);
}
// If no files were uploaded, respond with an error.
if (uploadedFiles.length === 0){
return res.badRequest('No file was uploaded');
}
console.log('file exists:', fs.existsSync(uploadedFiles[0].fd));
var path = uploadedFiles[0].fd;
var tmpFileName = /[^/]*$/.exec(path)[0];
var url = '/my-dir/'+tmpFileName;
return res.send(url);
});
添加console.log 行只是为了确保在调用函数whenDone 时文件存在(并且每次调用时文件都已存在)。
问题是在客户端:当页面向这个端点发送一个文件并接收到来自服务器的响应时,它会尝试向同一个上传的文件(通常是图像)发送另一个请求并接收404。
使用console.log,我检查了该文件是否存在,并且我确定该 url 是正确的-side 代码在 90% 的情况下都有效(这意味着这是一个时间问题)。
当文件不仅被加载而且准备好发送到客户端时,是否会触发一些sails.js 事件?
提前致谢。
【问题讨论】:
标签: javascript node.js file-upload sails.js