为了账号安全,请及时绑定邮箱和手机立即绑定

使用对象值创建文件夹

使用对象值创建文件夹

潇潇雨雨 2021-12-12 18:17:25
我正在学习 Nodejs,并且正在尝试为每个新用户创建文件夹。该文件夹将链接到用户名(单击它时将打开文件夹/ftp)我正在使用 Admin-bro 界面。这是用户对象。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:没有控制器,因为我不知道该怎么做。请给我一个建议或链接,我可以在其中了解它是如何完成的。谢谢
查看完整描述

2 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

我愿意将用户名或 id 传递给文件夹并动态创建它,而不是手动创建。像这样


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 });


查看完整回答
反对 回复 2021-12-12
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

用户mkdrp节点模块包


var mkdirp = require('mkdirp');


mkdirp('/tmp/foo/bar/baz', function (err) {

  if (err) console.error(err)

  else console.log('pow!')

});


查看完整回答
反对 回复 2021-12-12
  • 2 回答
  • 0 关注
  • 248 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号