我正在学习Nodejs,并尝试为每个新用户创建文件夹。文件夹将链接到用户名(当单击它时将打开文件夹/ftp)我正在使用Admin-bro界面。
这是User对象。
const { model } = require("mongoose");
const User = model("User", {
name: String,
surname: String,
age: Number,
email: String,
description: String
});
module.exports = User;用户路由器:
const { Router } = require('express')
const paginate = require('../services/paginate.service')
const User = require('../models/user.model')
const dir = require('../routers/ftp')
const router = new Router()
const serializer = (user) => {
return user.toObject({ versionKey: false })
}
router.get('/', async (req, res) => {
const users = await paginate(User.find({}), req)
res.send(users.map(serializer))
})
router.post('/', async (req, res) => {
const user = await new User(req.body.user).save()
res.send(serializer(user))
})
module.exports = router我不知道如何为我添加的每个新用户创建一个文件夹,传递name_surname作为文件夹名称。我尝试创建路由器,但失败了。
这是我尝试过的:
"use strict";
module.exports = function(app) {
const fs = require("fs");
const path = require("path");
const multer = require("multer");
const storage = multer.diskStorage({
desctination: function(req, file, cb) {
const uploadDir = path.join(__dirname, "..", "..", `${Date.now()}`);
fs.mkdirSync(uploadDir);
cb(null, uploadDir);
},
filename: function(req, file, cb) {
cb(null, file.originalname);
}
});
const upload = multer({ storage });
const controller = require("../routers/createDir");
};PS:没有控制器,因为我不知道该怎么做。
请给我一个建议或一个链接,我可以在那里了解它是如何做到的。谢谢
发布于 2019-11-01 21:07:53
用户mkdrp节点模块包
var mkdirp = require('mkdirp');
mkdirp('/tmp/foo/bar/baz', function (err) {
if (err) console.error(err)
else console.log('pow!')
});发布于 2019-11-01 21:21:31
我愿意将用户名或id传递给文件夹,并动态创建它,而不是手动创建。这样的smth
const multer = require("multer");
const storage = multer.diskStorage({
destination: (req, file, cb) => {
const { userId } = req.body;
const dir = `../uploads/${userId}`;
fs.exists(dir, exist => {
if (!exist) {
return fs.mkdir(dir, error => cb(error, dir));
}
return cb(null, dir);
});
},
filename: (req, file, cb) => {
const { userId } = req.body;
cb(null, `UserId-${userId}-Image-${Date.now()}.png`);
}
});
const upload = multer({ storage });https://stackoverflow.com/questions/58659276
复制相似问题