node.js - 需要一些帮助以更好地理解代码
问题描述
这是一个有效的代码,因此只需要了解某些部分就会有所帮助。
上传.js::
const util = require("util");
const multer = require("multer");
const GridFsStorage = require("multer-gridfs-storage");
const mongoose = require('mongoose');
const Grid = require('gridfs-stream');
const mongoURI ='mongodb://localhost:27017/file_uploaded_new';
const promise = mongoose.connect(mongoURI, { useNewUrlParser: true });
const conn = mongoose.connection;
**let gfs;
conn.once('open',() => {
gfs = Grid(conn, mongoose.mongo);
gfs.collection('uploads');
});**
**var storage = new GridFsStorage({**
db: promise,
**options: {useNewUrlParser: true, useUnifiedTopology: true }**,
file: (req, file) => {
return new Promise((resolve, reject) => {
if (file.mimetype === 'application/vnd.openxmlformats-
officedocument.wordprocessingml.document') {
resolve({
bucketName: 'words',
filename: `${file.originalname}`
})
} else {
reject(Error("File type has been rejected"));
}
});
}
});
**var uploadFile = multer({storage: storage}).single("file");**
**var uploadFilesMiddleware = util.promisify(uploadFile);
module.exports = uploadFilesMiddleware;**
需要具体了解代码的粗体部分。得到了源代码,但没有解释。所以理解它真的很有帮助。
解决方案
推荐阅读
- javascript - Javascript 对象可以,但单独调用时会丢失 peoperty 值
- angular - 我如何将延迟加载模块中的组件用作其他未延迟加载的组件中的子组件?
- atlassian-sourcetree - 尝试预览对 config.codekit3 文件的更改时,SourceTree 冻结
- spring - 失败,立即停止春季批次的工作
- cuda - 当一个扭曲被分配给一个 SM 的一部分时,它会一直呆在那里直到该扭曲完成吗?
- angularjs - 带有开放层 3 的 LineString 热图
- r - 根据 id 分隔行
- javascript - Performace API - Safari 浏览器不支持
- javascript - 使用来自 API(钩子)的异步调用 setState 后状态为空
- mongodb - mongo db inner join + 过滤加入文件