首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用对象值创建文件夹

使用对象值创建文件夹
EN

Stack Overflow用户
提问于 2019-11-01 20:29:31
回答 2查看 105关注 0票数 1

我正在学习Nodejs,并尝试为每个新用户创建文件夹。文件夹将链接到用户名(当单击它时将打开文件夹/ftp)我正在使用Admin-bro界面。

这是User对象。

代码语言:javascript
复制
const { model } = require("mongoose");

const User = model("User", {
  name: String,
  surname: String,
  age: Number,
  email: String,
  description: String
});

module.exports = User;

用户路由器:

代码语言:javascript
复制
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作为文件夹名称。我尝试创建路由器,但失败了。

这是我尝试过的:

代码语言:javascript
复制
"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:没有控制器,因为我不知道该怎么做。

请给我一个建议或一个链接,我可以在那里了解它是如何做到的。谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-11-01 21:07:53

用户mkdrp节点模块包

代码语言:javascript
复制
var mkdirp = require('mkdirp');

mkdirp('/tmp/foo/bar/baz', function (err) {
  if (err) console.error(err)
  else console.log('pow!')
});
票数 0
EN

Stack Overflow用户

发布于 2019-11-01 21:21:31

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

代码语言:javascript
复制
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 });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58659276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档