node.js - 为什么multer不是目的地未定义
问题描述
我一直在尝试使用 multer 将文件上传到我的本地磁盘存储,但即使在设置了目标之后,我仍然看不到我在 multer 磁盘存储中设置为目标的上传文件夹中的文件。这是HTML
<html lang="en">
<%- include('./partails/head.ejs') %>
<body>
<%- include('./partails/nav.ejs') %>
<div class="container">
<h1 class="top">add new book</h1>
<form action="/add-book" enctype="multipart/form-data" method="POST">
<div class="mb-3">
<label for="bookName">book name</label>
<input type="text" name="bookName" id="bookName">
</div>
<div class="mb-3">
<label for="bookAuthor">book author</label>
<input type="text" name="bookAuthor" id="bookAuthor">
</div>
<div class="mb-3">
<label for="pages">number of pages</label>
<input type="number" name="pages" id="pages">
</div>
<div class="mb-3">
<label for="bookCover">book cover</label>
<input type="file" name="bookCover" id="bookCover">
</div>
<button class="btn bg-blue-600 w-full text-white uppercase">add book</button>
</form>
</div>
</body>
</html>
多磁盘存储
const multer = require('multer')
const Storage = multer.diskStorage({
destination: function(req,file,cb){
cb(err=>{
console.log(err)
},'upload')
},
filename: function(req,file,cb){
const ext = file.originalname.substr(file.originalname.lastIndexOf('.'))
cb(null,file.fieldname + '-' + Date.now()+ ext)
}
})
module.exports = store = multer({Storage})
这是路线
const {Router} = require('express')
const route = Router()
const bookCont = require('../controller/bookController')
const store = require('../multer')
route.get('/books', bookCont.get_book_route)
route.get('/add-book',bookCont.get_add_book)
route.post('/add-book',store.single('bookCover'),bookCont.post_add_book)
module.exports = route
解决方案
推荐阅读
- python - 获取分组列的计数
- javafx - 我不能在 AccountController 中为全名和钱设置文本。错误代码是“不能从静态上下文引用非静态变量”
- oop - 如果预期,为什么不接受字符串类型?
- android - 无法让 KeyPairGenerator 生成随机密钥
- scala - 当被子类型使用时,对泛型方法的类型参数进行泛型子类型化
- java - Tomcat 负载均衡环境中的 Java 应用间通信
- javascript - 如何在不使用重置按钮的情况下重置?
- reactjs - 如何访问属于 useState 中的组件的变量?
- r - 如何使用决策树对类别中的文本进行分类
- r - 参数 'replacement' 的长度 > 1 并且只使用第一个元素