Ich bin ich stecken in Post-Anfrage, während ich Bilder entwickeln in Quill-Editor. Ich habe keine Ahnung, was ich tun muss, um dieses Problem zu beheben. Wenn ich versuche, Daten mit Post-Anfrage zu senden, dann 404 Fehler auftreten.Wie behebt man POST 404 Fehler mit node.js?
Routen/img.js - AKTUALISIERT
var ImageFile = require('../models/imageFiles');
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'img/') // Set directory
},
filename: function (req, file, cb) {
cb(null, file.name) // Set file name
}
});
var img = multer({ storage: storage });
router.post('/upload', img.single('imgfile'), (req, res, next) => {
var imageFile = new ImageFile({
name: req.body.name,
type: req.body.type,
size: req.body.size,
content: req.body.content
});
imageFile.save((err, result) => {
if (err) {
return res.status(500).json({
title: 'An error occured',
error: err
});
}
res.status(201).json({
message: 'User created',
obj: result
});
});
});
module.exports = router;
app.js
const express = require('express');
var bodyParser = require('body-parser');
const port = process.env.PORT || 3000;
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var appRoutes = require('./routes/app');
var userRoutes = require('./routes/user');
var imgRoutes = require('./routes/img');
var app = express();
// Start
app.use(express.static(path.join(__dirname, '../awesome-drill/dist')));
app.use(logger('dev'));
app.use(bodyParser.json({ limit: '10mb' }));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-Width, Content-Type, Accept');
res.setHeader('Access-Control-Allow-Methods', 'POST, GET, PATCH, DELETE, OPTIONS');
next();
});
app.use('/user', userRoutes);
app.use('/img', imgRoutes);
app.use('/', appRoutes);
app.use(express.static('routes'));
// It's for routing SPA
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, '../awesome-drill/dist/index.html'));
});
app.listen(port,() => {
console.log(`Server is up on port ${port}`);
});
Vorderseite Service (angular4)
Dank Ihnen habe ich meinen Fehler gefunden und ich habe ihn hinzugefügt. Ein 404-Fehler tritt jedoch immer noch auf.
Bitte aktualisieren Sie Ihre Antwort, um den Frontend-Code einzuschließen, der tatsächlich auf Ihrer Route veröffentlicht wird. Ein 404 bedeutet nicht gefunden, also können Sie auch den Mungo-Modellcode entfernen, da es nichts mit dem Problem zu tun hat. – Soviut
Das bedeutet, dass Sie Daten an den falschen URI senden oder dass der URI, den Sie auf dem Backend definiert haben, nicht existiert. 404 bedeutet "nicht gefunden", und da Ihr Code diesen Fehler nicht explizit für ein "nicht gefundenes Ergebnis" ausgibt, ist der einzige andere Ort wegen der falschen URL., –
Ihre app.js sollte eine normale 404 'Middleware 'haben Zumindest erinnere ich mich an das ursprüngliche express.js-Setup, mit dem es hinzugefügt wurde. Schlagen sie zumindest Ihren Controller? oder hast du eine andere 'Middleware'-Funktion, die das möglicherweise verursacht? –