In meinem REST Api lade ich einige Bilder hoch. Das ist meine Projektstruktur. Kann hochgeladene Bilder in express.js nicht lesen
Jetzt befindet sich im öffentlichen Ordner ein weiterer Ordner namens images. Hier lade ich die Bilder hoch.
jedoch aus irgendeinem Grunde, wenn ich die locahost URL zu einem bestimmten Bild eingeben dh http://127.0.0.1:61592/larissaApp/public/images/myImage-1497186011532.jpg erhalte ich diese Meldung im Browser.
Cannot GET /larissaApp/public/images/myImage-1497186011532.jpg
Dies ist meine app.js-Datei.
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var url = 'mongodb://localhost:27017/larissaApp';
mongoose.connect(url);
var db = mongoose.connection;
db.on('error',console.error.bind(console,'connection error:'));
db.once('open',function(){
console.log("Connected correctly to server");
});
var routes = require('./routes/index');
var users = require('./routes/users');
var newsRouter = require('./routes/newsRouter');
var cityRouter = require('./routes/cityRouter');
var imageRouter = require('./routes/imageRouter');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public/images')));
app.use('/', routes);
app.use('/users', users);
app.use('/news',newsRouter);
app.use('/news',newsRouter);
app.use('/city',cityRouter);
app.use('/image',imageRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
Ich hatte gehofft, dass diese Codezeile diesen Fehler beheben würde.
app.use(express.static(path.join(__dirname, 'public/images')));
aber es nicht. Irgendwelche Ideen?
Danke,
Theo.
Hinweis ersetzt werden soll, dass dies auch alle Unterordner berücksichtigt, so dass keine brauchen Sie diese zweite statische Middleware in Ihrem Code. – Cynigo
Ich habe http: // localhost: 3000/images/myImage-1497186011532.jpg verwendet und einen 404-Fehler zurückgegeben. – Theo