我正在尝试将前端“ Ember JS”的图像上传到“ Sails JS”,

我创建了一个名为“ upload”的API,并使用了带有“ gridfs”的“ skipper”来将图像上传到我的Mongo数据库中。

我也在使用“ kitematic”虚拟服务器,很奇怪,我的代码可以正常工作,直到到达

req.file('file').upload({
  adapter : require('skipper-gridfs'),
  uri : 'mongodb://192.168.99.100:32769/admin/upload'
})


由于某种原因我得到了

Sending 500 ('server error') response:
{ err : 'connection to [192.168.99:27017] timed out' }


我在Ember中使用“ ember-file-upload”,这是我的前端

template.hbs

  {{#file-upload name="file"
            accept="image/*"
            multiple=true
            onfileadd=(action "uploadImage")}}
     <a id="upload-image" tabindex=0>Add an Image.</a>
  {{/file-upload}}


controller.js

 uploadImage(file) {
  console.log(file);
  file.upload('http://localhost:1338/uploads/file').then(response => {
    console.log(response);
    this.get('model.files').pushObject({ path : response.body.message });
  })
}


现在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/upload'
        }, function(err, uploadedFiles) {
        if (err) return res.negotiate(err);
        console.log(err);
        return res.json({ message : uploadedFiles[0].fd.split('assets/')[1] })
        })
    }
};

最佳答案

对于初学者,请查看您得到的错误:

Sending 500 ('server error') response:
{ err : 'connection to [192.168.99:27017] timed out' }


那里您连接到192.168.99:27017,这与您设置的完全不同:

mongodb://192.168.99.100:32769/admin/upload


首先,我认为您的URI不正确-这个/ admin / upload在我看来似乎不正确。尝试/admin.upload,或完全忽略整个内容,例如:

mongodb://192.168.99.100:32769


另外,请确保您无需用户名和密码即可连接到mongoDB。

作为参考,请检查以下URL:http://api.mongodb.com/java/current/com/mongodb/MongoClientURI.html

关于javascript - 图片上传Ember JS和Sails JS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49128220/

10-12 12:58
查看更多