node.js - How to pass variable into function [ different file] using node js express
问题描述
Hi I'm working on upload image . I following in document everything work fine but I just want to make a function more dynamic .
first I've my Controller
async function store (req, res) {
const imgName = 'imgName';
upload(req, res, imgName, (err) => {
if (err) {
res.send('eror');
} else {
console.log(req.file);
res.send('test');
}
})
}
and in upload function I create new files names helpers.js
// Here i setup path and files name
const storage = multer.diskStorage({
destination: './public/uploads/',
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)); }
})
// the problem are here imgName not define How can I pass variable into const upload
const upload = multer(imgName,{
storage: storage
}).single(imgName');
module.exports = {
upload,
};
解决方案
尝试导出upload
不是预建对象的函数:
const upload = imgName => multer(imgName, { storage: storage }).single(imgName);
module.exports = { upload }
然后,您的控制器通过调用带有 imgName 参数的函数来使用
async function store (req, res) {
const imgName = 'imgName';
upload(imgName)(req, res, imgName, (err) => {
if (err) {
res.send('eror');
} else {
console.log(req.file);
res.send('test');
}
})
}
推荐阅读
- pgbouncer - 即使密码错误,pgbouncer 也能正常工作
- python - 如何使用 Zelle 图形模块制作动画?
- sql - 为什么我需要动态查询“来自查询的列值”
- shell - Shell Scipt 仅运行 100 个站点的证书的单次迭代,它应该运行 100 次
- java - 在 HSB 颜色模式中更改不透明度
- dart - Flutter:根据值显示不同的图标
- python - pygame time.sleep 优先于函数的其余部分
- c++ - std::sort (stable_sort) 比较函数返回值的令人困惑的结果
- python - 如何设置将字典转换为字符串的循环?
- php - 为什么我的表单在 ie 中向 php 文件提交了一个空字符串,而不是在 chrome 或 mozilla 中?