不確定我有在我的server.js路線提供圖片的工作API,並且想要抽象到一個單獨的模塊。req.params模塊
前:
app.get('/api/image/:filename', function(req, res){
var resourcePath = 'uploads/public/projectnumber/issues/small/' + req.params.filename + '.png';
console.log(resourcePath)
if(fs.existsSync(resourcePath)) {
var file = fs.readFileSync(resourcePath);
res.writeHead(200, 'Content-Type:application/pdf:image/png');
res.end(file,'binary');
}
else {
res.send(400, 'No image found');
}
})
我想是這樣的:
var ImageRouter = require('./routes/imageRouter');
app.use('/api/image/:filename', ImageRouter);
,我已經試着寫像這樣在我imageRouter.js文件:
var express = require('express');
var fs = require('fs');
var router = express.Router();
router.use(function(req, res, next) {
var resourcePath = 'public/images/' + req.params.filename + '.png';
if(fs.existsSync(resourcePath)) {
var file = fs.readFileSync(resourcePath);
res.writeHead(200, 'Content-Type:application/pdf:image/png');
res.end(file,'binary');
}
else {
res.send(400, 'No image found');
}
next();
});
module.exports = router;
但req.params.filename未定義。我哪裏錯了?
謝謝!
什麼顯示控制檯,當你做'的console.log(req.params);'? –
這是打算的行爲。阿諾的解決方案應該工作。更多細節在這裏 - > https://github.com/strongloop/express/issues/2660 – Jordonias