私はこのWebページをangularJSで書いており、テキストと画像を編集して保存してもらいたいと思っています。ユーザーのパソコンからファイルをアップロードできるファイルアップロード機能を作りました。問題は、このファイルを mongoDB に保存することです。gridFS に関する多くの例を読みましたが、私がやろうとしていることと完全に一致するものはありませんでした。これが私のコードです:
web-server.js:
app.post('/uploadFile', function(req,res){
console.log("Retrieved:");
console.log(req.files);
var Grid = require('gridfs-stream');
var gfs = Grid(DB, mongoose.mongo);
// streaming to gridfs
var writestream = gfs.createWriteStream(req.files.file);
fs.createReadStream(req.files.file.path).pipe(writestream);
services.js:
function uploadFilesToServer(file){
var fd = new FormData();
fd.append("file", file);
var deferred = $q.defer();
console.log("trying to save:");
console.log(file);
$http({
method:"POST",
url: "uploadFile",
data: fd,
withCredentials: true,
headers: {'Content-Type': undefined },
transformRequest: angular.identity
}).success(function(data){
var returnValue = [true, file, data];
deferred.resolve(returnValue);
}).error(function(data){
var returnValue = [false, file, data];
deferred.resolve(returnValue);
});
return deferred.promise;
}
現時点では、コードを実行してもエラー メッセージは表示されませんが、画像が db.files または db.chunks に保存されることもありません。どんな助けでも大歓迎です。