2015-07-20 67 views
0

我正在嘗試向mongodb數據庫中寫入上傳的文件(如圖像)。但是,當我嘗試初始化gridfs-stream時,我得到一個類型錯誤。這裏是我的代碼:初始化Gridfs返回TypeError:字符串不是函數

var mongo = require('mongodb'); 

router.post('/createpost', cpUpload, function(req,res) { 
    var db = req.db; 

    var gfs = Grid(db,mongo); 

    var file = req.file; 

    var fileId = new ObjectId(); 

    var writestream = gfs.createWriteStream({ 
    filename: file.originalname, 
    mode: 'w', 
    content_type: file.mimetype, 
    metadata: req.body.postText, 
    }); 
    fs.createReadStream(file.path).pipe(writestream); 

    writestream.on('close', function(file) { 
    res.send("Succcess!"); 
    fs.unlink(file.path,function(err) { 
     if (err) { 
     console.log("Error: ", err); 
     console.log("DELETED: ", file.path); 
     } 
    }); 
}); 


}); 

我猜它是與我在呼喚dbreq.db,但我讓DB訪問到路由器文件與此代碼在app.js

var mongo = require('mongodb'); 
var monk = require('monk'); 
var db = monk('localhost:27017/test-api'); 

app.use(function(req,res,next) { 
    req.db = db; 
    req.mongo = mongo; 
    next(); 
}); 
+0

我在下面的答案固定'字符串不是函數錯誤,但我仍然沒有得到這個代碼工作。我發佈了另一個問題[這裏](http://stackoverflow.com/questions/31528119/gridfs-createwritestream-not-working-with-monk-for-mongodb) – prcbass

回答

0

我對var Grid = require('gridfs-stream');的語法錯誤很簡單。