【发布时间】:2018-03-10 03:01:25
【问题描述】:
我在 Ember JS 中有一个函数可以将图像上传到 Sails JS,它使用“gridfs”适配器将图像存储在 Mongo db 中,到目前为止一切顺利。
我可以看到块和文件记录正在更新,一切正常。
问题在于检索图像本身,我不知道为什么,但似乎 Ember 找不到刚刚上传的图像,我尝试使用“gridfs”适配器中描述的读取方法但得到了什么都没有。
这是我的 Ember 模板
<div class="image">
{{#each model.files as |image|}}
<img src="http:localhost:1337/{{file.path}}" class="img-thumbnail">
{{/each}}
</div>
我在 Ember 控制器中的上传方法是:
upload(file) {
file.upload('http://localhost:1337/uploads/file').then(response => {
this.get('model.files).pushObject({ path : response.body.file })
})
我在 Sails JS 中的上传控制器是:
module.exports = {
file : function(req, res) {
console.log(req.body);
req.file('file').upload({
adapter : require('skipper-gridfs'),
uri : 'mongodb://192.168.99.100:32769/admin.uploads',
}, function (err, files) {
if (err) return res.negotiate('this is my error ' + err);
skipperAdapter.read(files, function(error, file) {
if (err) return res.negotiate('Reading Error' + err);
console.log(files, file);
res.json({ file : files[0] })
})
})
}
};
也试过了
module.exports = {
file : function(req, res) {
console.log(req.body);
req.file('file').upload({
adapter : require('skipper-gridfs'),
uri : 'mongodb://192.168.99.100:32769/admin.uploads',
}, function (err, files) {
if (err) return res.negotiate('this is my error ' + err);
res.json( { file : files[0].fd.split('/assets') } )[0]
});
}
};
我收到错误“GET http://localhost:1338/237e0d9e-7554-41e0-b2ac-666cdc5c2efa.jpg 404(未找到)”
【问题讨论】:
-
2 种可能性,在您的 ember 模板中,您在源代码中的 http 之后缺少 //。在您的获取请求中,您正在调用端口 1338。或者这些只是拼写错误?
-
很抱歉,但在我将编辑它们的问题中,它们都只是错字,您想到的任何其他解决方案吗?帮助感谢@Glen
标签: javascript node.js mongodb ember.js sails.js