【发布时间】:2015-08-02 02:49:57
【问题描述】:
我的 app.js 中有 multer,例如:
var multer = require('multer');
app.use(multer({ dest: './public/img/profile/',
rename: function (fieldname, filename) {
return fieldname;
},
onFileUploadStart: function (file) {
console.log(file.originalname + ' is starting ...')
},
limits: {
files: 1
},
onFileUploadComplete: function (file) {
console.log(file.fieldname + ' uploaded to ' + file.path)
imageUploaded=true;
}
}));
这可行,但我想在特定路线中设置这些设置。例如 imageRoute.js 而不是我的 app.js。但是我应该使用什么来代替 app.use() 而不是因为我无法在我的路线中访问应用程序。我在我的 app.js 中创建路由,例如:
var imageRoutes = require('./routes/imageRoutes')();
app.use('/image', imageRoutes);
imageRoutes.js
module.exports = function(passport) {
var that = this;
// Modules
var express = require('express');
var router = express.Router();
var fs = require('fs');
// Middleware: Checks if user is authenticated removed for more readable code
router.post('/fileupload', that.ensureAuthenticated, function(req, res, next) {
//setup multer here
});
router.post('/fileupload2', that.ensureAuthenticated, function(req, res, next) {
//setup multer here with a different destination path/filename etc
});
return router;
}
我找到了this question,但它并没有真正帮助我。
更新
我现在用 :
编辑了我的 app.js var multer = require('multer');
var imageRoutes= require('./routes/imageRoutes')(someRepo, multer);
imageRoutes.js
// POST: CREATE avatar
router.post('/avatar', function(req, res) {
router.use(multer({
dest: './public/img/profile/',
rename: function (fieldname, filename) {
return fieldname;
},
onFileUploadStart: function (file) {
console.log(file.originalname + ' is starting ...')
},
limits: {
files: 1
},
onFileUploadComplete: function (file) {
console.log(file.fieldname + ' uploaded to ' + file.path)
imageUploaded=true;
console.log(req.files);
res.redirect('/');
}
}))
});
我看到 chrome 正在将文件上传到 100%,但它什么也没做。它没有记录正在启动..或任何其他错误。
【问题讨论】:
标签: node.js