首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复Multer存储错误“创建存储引擎错误。必须至少提供一个url或db选项”?

如何修复Multer存储错误“创建存储引擎错误。必须至少提供一个url或db选项”?
EN

Stack Overflow用户
提问于 2020-10-17 05:41:11
回答 1查看 1.1K关注 0票数 0

当我试图将我的应用程序部署到Heroku时,我得到了“创建存储引擎错误。必须至少提供一个url或db选项”。在我的heroku日志里。但是,在我的IDE中开发和测试应用程序时,我没有出错。

这是我的错误日志:

代码语言:javascript
复制
...
2020-10-17T05:24:18.106601+00:00 app[web.1]: Error: Error creating storage engine. At least one of url or db option must be provided.
2020-10-17T05:24:18.106602+00:00 app[web.1]: at new GridFSStorage (/app/node_modules/multer-gridfs-storage/lib/gridfs.js:59:10)
2020-10-17T05:24:18.106602+00:00 app[web.1]: at Object.<anonymous> (/app/config/multer.js:7:17)
2020-10-17T05:24:18.106603+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1015:30)
2020-10-17T05:24:18.106604+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1035:10)
2020-10-17T05:24:18.106604+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:879:32)
2020-10-17T05:24:18.106605+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:724:14)
2020-10-17T05:24:18.106605+00:00 app[web.1]: at Module.require (internal/modules/cjs/loader.js:903:19)
2020-10-17T05:24:18.106605+00:00 app[web.1]: at require (internal/modules/cjs/helpers.js:74:18)
2020-10-17T05:24:18.106606+00:00 app[web.1]: at Object.<anonymous> (/app/server.js:9:16)
2020-10-17T05:24:18.106607+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1015:30)
...

这是穆特的密码:

代码语言:javascript
复制
require('dotenv').config();
const path = require('path');
const crypto = require('crypto');
const multer  = require('multer');
const GridFsStorage = require('multer-gridfs-storage');

const storage = new GridFsStorage({
  url: process.env.URI,
  options: { useUnifiedTopology: true },
  file: (req, file) => {
    return new Promise((resolve, reject) => {
      crypto.randomBytes(16, async (err, buf) => {
        if (err) return reject(err);

        const filename = buf.toString('hex') + path.extname(file.originalname);

        const fileInfo = { filename, bucketName: 'uploads' };
        
        resolve(fileInfo);
      });
    });
  }
});

const upload = multer({ storage });

module.exports = upload;

我的process.env.URI变量的形式是:URI=mongodb+srv://...

任何帮助都是非常感谢的:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-17 21:03:23

我发现这个错误实际上是由于我的环境变量造成的。我必须在Heroku中设置它们,以便应用程序读取它们(我依赖于我的.env文件,但当然,.gitignore文件将阻止将该文件推送给Heroku )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64399364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档