【发布时间】:2022-02-11 20:58:20
【问题描述】:
我正在使用我的 Node 服务器上的 multer 库来解决这个问题。我正在尝试上传一个或多个文件,然后为每个文件调用数据库,然后将成功或失败发送回客户端。
所以我上传文件的节点服务器路由如下所示:
app.post('/uploadFiles', (req, res) => {
upload(req, res, async function (err) {
...
那么上传功能就是这样:
const upload = multer({ storage: multerStorage }).array('file');
然后是 multerStorage 函数,用于处理 multer 的目标和文件名:
const multerStorage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, process.env.LABELS_LOCATION);
},
filename: async function (req, file, cb) {
// save file info to DB
const itemID = file.originalname.slice(0, -4);
const addLabelResult = addLabelToDB(itemID, 0);
// console.log({ addLabelResult });
// console.log({ itemID });
// console.log({ file });
cb(null, file.originalname);
},
});
最后是addLabelToDB 函数:
const addLabelToDB = (itemID, enterType) => {
const sp = 'insertLabelHistory';
const inputs = [
{ name: 'itemID', type: sql.NVarChar, value: itemID },
{ name: 'enterType', type: sql.Bit, value: enterType },
];
return executeSP(res, sp, inputs);
};
所以问题是,如果您查看addLabelToDB 函数,您可以看到对executeSP 的调用接受了res。我想要来自原始/uploadFiles 路线的res。但我不知道如何从这里访问它。如果有更好的完全不同的方法来做到这一点,我会全力以赴。
【问题讨论】:
标签: javascript node.js multer