在 Express Router 中使用 multer 进行文件上传
Use multer for File-Uploads inside a Express Router
我使用 node.js 和 Express 构建了一个可用的 REST-API。
现在我需要一个文件上传端点,它接受上传的文件并处理它们。
我正在使用 Express Router 和一些身份验证中间件。
server.js(节选)
var router = express.Router()
app.use("/api", router)
[...]
router.use(function(req, res, next) {
//Authentification middleware
[...]
next()
})
router.route("/upload")
.post(function(req, res){
//upload logic
})
如何使用 multer 将上传的文件作为 req.file(或左右)提供,但仅限于 /api/upload 对于授权用户?
好的,我知道了。
我可以用
var multer = require("multer")
var upload = multer({ dest: "some/path" })
[...]
router.route("/upload")
/* replace foo-bar with your form field-name */
.post(upload.single("foo-bar"), function(req, res){
[...]
})
对我来说,它也有效。
var multer = require("multer")
var upload = multer({ dest: "path" })
router.post("/upload", upload.single("foo-bar"), function(req, res) {
...
}
在我的情况下,我尝试了所有方法,但它不起作用,但我找到了解决方案
app.js
const multer = require('multer');
const storage = {
dest: 'UPLOAD/PATH/'
}
const upload = multer(storage);
app.post('/myupload', upload.single('FILE_NAME'), (req,res)=>{
res.send('Upload');
});
我用 express.Router() 尝试了很多次,但它不起作用,这就是我在 app.js 中编写代码并重定向到另一个文件的原因。
我使用 node.js 和 Express 构建了一个可用的 REST-API。
现在我需要一个文件上传端点,它接受上传的文件并处理它们。
我正在使用 Express Router 和一些身份验证中间件。
server.js(节选)
var router = express.Router()
app.use("/api", router)
[...]
router.use(function(req, res, next) {
//Authentification middleware
[...]
next()
})
router.route("/upload")
.post(function(req, res){
//upload logic
})
如何使用 multer 将上传的文件作为 req.file(或左右)提供,但仅限于 /api/upload 对于授权用户?
好的,我知道了。
我可以用
var multer = require("multer")
var upload = multer({ dest: "some/path" })
[...]
router.route("/upload")
/* replace foo-bar with your form field-name */
.post(upload.single("foo-bar"), function(req, res){
[...]
})
对我来说,它也有效。
var multer = require("multer")
var upload = multer({ dest: "path" })
router.post("/upload", upload.single("foo-bar"), function(req, res) {
...
}
在我的情况下,我尝试了所有方法,但它不起作用,但我找到了解决方案
app.js
const multer = require('multer');
const storage = {
dest: 'UPLOAD/PATH/'
}
const upload = multer(storage);
app.post('/myupload', upload.single('FILE_NAME'), (req,res)=>{
res.send('Upload');
});
我用 express.Router() 尝试了很多次,但它不起作用,这就是我在 app.js 中编写代码并重定向到另一个文件的原因。