3

我正在使用节点服务器将文档作为 blob 上传到 mongodb 数据库中。我在启动自身的节点服务器上使用猫鼬启动了连接。但是在调用上传 API 时出现以下错误。

Error: The database connection must be open to store files
at GridFSStorage._handleFile (C:\Arun\MobileRosterApplication\serverSide\node_modules\multer-gridfs-storage\lib\gridfs.js:410:17)
at C:\Arun\MobileRosterApplication\serverSide\node_modules\multer\lib\make-middleware.js:144:17
at allowAll (C:\Arun\MobileRosterApplication\serverSide\node_modules\multer\index.js:8:3)
at wrappedFileFilter (C:\Arun\MobileRosterApplication\serverSide\node_modules\multer\index.js:44:7)
at Busboy.<anonymous> (C:\Arun\MobileRosterApplication\serverSide\node_modules\multer\lib\make-middleware.js:114:7)
at emitMany (events.js:147:13)
at Busboy.emit (events.js:224:7)
at Busboy.emit (C:\Arun\MobileRosterApplication\serverSide\node_modules\busboy\lib\main.js:38:33)
at PartStream.<anonymous> (C:\Arun\MobileRosterApplication\serverSide\node_modules\busboy\lib\types\multipart.js:213:13)
at emitOne (events.js:116:13)
at PartStream.emit (events.js:211:7)
at HeaderParser.<anonymous> (C:\Arun\MobileRosterApplication\serverSide\node_modules\dicer\lib\Dicer.js:51:16)
at emitOne (events.js:116:13)
at HeaderParser.emit (events.js:211:7)
at HeaderParser._finish (C:\Arun\MobileRosterApplication\serverSide\node_modules\dicer\lib\HeaderParser.js:68:8)
at SBMH.<anonymous> (C:\Arun\MobileRosterApplication\serverSide\node_modules\dicer\lib\HeaderParser.js:40:12)

但是节点已经连接到 mongo db,我也可以访问其他 API。请找到我的

server.js

var mongoose = require('mongoose');
var Grid = require('gridfs-stream');
.................
.................
mongoose.connect('mongodb://127.0.0.1/testerDB', function (err) {
if (err) {
  console.log('error occured while opening connection to database');
} else {
var conn = mongoose.connection;
Grid.mongo = mongoose.mongo;
global.gfs = Grid(conn.db);
var document = require('./routes/documentRoutes')
}

documentRoutes.js

var express = require('express')
var router = express.Router()
var multer = require('multer');
var path = require("path");
var fs = require('fs');
var blobStorage = GridFsStorage({
 gfs: gfs,
 filename: function (req, file, cb) {
   var datetimestamp = Date.now();
   cb(null, file.fieldname + '-' + datetimestamp + '.' + 
      file.originalname.split('.')[file.originalname.split('.').length - 1]);
 },
 metadata: function (req, file, cb) {
    cb(null, { originalname: file.originalname });
 },
  root: 'ctFiles'
 });

 var blobUpload = multer({
   storage: blobStorage
 })

 router.post("/uploadBlob", blobUpload.single('file'), function 
    (req,res, next) {
        if (req.file && req.file.filename) {
           res.send({ "fileName": req.file.filename, "orginalName": 
           req.file.originalname
       });
      } else {
           res.status(500).send({ "error": 'Unexpected error occured.' });
         }
      });

请帮助查找问题。

4

0 回答 0