我已经成功设置了将块渲染到mongo实例的发布请求。我猜中间件有两个,它们分别涉及网格流的不同方面。
ConnectDB
s=df.var1.str.split('-',expand=True).apply(pd.to_numeric,errors='coerce').mean(axis=1).fillna(df.var1)
0 1.5
1 3.5
2 7
3 Missing
dtype: object
df['wanted']=s
并上传
const connectDB = async () => {
let gfs;
try {
await mongoose.connect(db, {
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false,
useUnifiedTopology: true,
});
let dbs = mongoose.connection;
dbs.once("open", () => {
gfs = Grid(conn.dbs, mongoose.mongo);
gfs.collection("files");
});
console.log("MongoDB Connected...");
} catch (err) {
console.error(err.message);
process.exit(1);
}
};
module.exports = connectDB;
我的问题是,我已经发布了使用中间件并在加载时初始化gfs的信息。我如何访问gfs以执行以下操作
const util = require("util");
const multer = require("multer");
const GridFsStorage = require("multer-gridfs-storage");
const url = require("../config/default.json");
var storage = new GridFsStorage({
url:'awesomeurl',
options: { useNewUrlParser: true, useUnifiedTopology: true },
file: (req, file) => {
const match = ["application/pdf"];
if (match.indexOf(file.mimetype) === -1) {
const filename = `${file.originalname}`;
return filename;
}
return {
bucketName: "files",
filename: `${file.originalname}`,
};
},
});
var uploadFile = multer({ storage: storage }).single("file");
var uploadFilesMiddleware = util.promisify(uploadFile);
module.exports = uploadFilesMiddleware;
我提供了发布请求,原因是im将使用文件ID作为进行findbyid的引用的一部分,因为文件是其自身的集合,并且此搜索引用了潜在客户集合。但是我如何从/ api / prospects / files访问在快速路由器中调用gfs变量的/ api / files