Ich bin auf dieses Problem fest, sehen, ob jemand helfen kann. Ich habe diese Node.js Anwendung und wenn ich ein Formular, und gehen Sie auf die Registrierungsteil einreichen bekomme ich diesen Fehler:RangeError: Ungültiger Statuscode: 0 Knoten js
RangeError: Invalid status code: 0
at ServerResponse.writeHead (_http_server.js:192:11)
at ServerResponse._implicitHeader (_http_server.js:157:8)
at ServerResponse.OutgoingMessage.end (_http_outgoing.js:574:10)
at ServerResponse.send (C:\projects\authentication\node_modules\express\lib\response.js:211:10)
at ServerResponse.json (C:\projects\authentication\node_modules\express\lib\response.js:256:15)
at C:\projects\authentication\app.js:24:7
at Layer.handle_error (C:\projects\authentication\node_modules\express\lib\router\layer.js:71:5)
at trim_prefix (C:\projects\authentication\node_modules\express\lib\router\index.js:315:13)
at C:\projects\authentication\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\projects\authentication\node_modules\express\lib\router\index.js:335:12)
hier ist die app.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
// include routes
var routes = require('./routes/router');
app.use('/', routes);
app.use('/register', routes);
// serve static files from /public
app.use(express.static(__dirname + '/template'));
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('File Not Found');
err.status = 404;
next(err);
});
// error handler
// define as the last app.use callback
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.json('error', {
message: err.message,
error: {}
});
});
/////// JSON parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(function (req, res) {
res.setHeader('Content-Type', 'text/plain');
res.write('you posted:\n');
res.end(JSON.stringify(req.body, null, 2));
});
// listen on port 3000 setting server
app.listen(3000, function() {
console.log('Express app listening on port 3000');
});
to handle the http request i have a route.js file, wich is like this:
var express = require('express');
var router = express.Router();
var path = require('path');
// GET/
router.get('/', function(req, res, next) {
//res.setHeader('Content-type','text/plain');
return res.sendFile(path.join(__dirname + "/../index.html"));
});
router.post('/register', function(req, res){
//console.log(req.body);
return res.send(req.body.email);
/*
if (req.body.email &&
req.body.username &&
req.body.password &&
req.body.passwordConf) {
var userData = {
email: req.body.email,
username: req.body.username,
password: req.body.password,
passwordConf: req.body.passwordConf
};
//use schema.create to insert data into the db
User.create(userData, function (err, user) {
if (err) {
return next(err);
} else {
return res.redirect('/profile');
}
});
}*/
});
module.exports = router;
, wenn ich auf Zugang versuchen via get request auf der root '/' es öffnet die html mit einem formular, diese form geht zu '/ register' so dann bekomme ich den fehler, es ist irgendwie komisch wie bekomme ich die html-datei fein über get auf root aber wenn ich versuche auf '/ register' zuzugreifen ich erhalte nur diesen fehler, habe schon eine menge sachen ausprobiert und ich kann nicht was ich falsch mache, hoffe das ich etwas hilfe bekomme. Danke.
wow, das ist ein Stück Code, Fehler zu behandeln, in der Tat haben Sie Recht und jetzt bin immer ich die Nachricht richtig ERROR, es ist irgendwie ironisch, dieses Problem ist gelöst, aber der erste Fehler besteht immer noch ... jetzt bekomme ich diese Nachricht beim Zugriff auf '/ register' {"message": "Kann die Eigenschaft 'email' von undefined nicht lesen", "error": { }} ... sieht es so aus, als ob ich nicht die Informationen von der Post-Anfrage oder etwas wie dieser bekomme. –
@AndreyViktorKandauroff siehe meine Bearbeitung. – robertklep
Mann, das ist gut, Sie helfen, aber es ist immer noch nicht perfekt, wenn Sie mir eine Idea wieder geben können, weil ich jetzt eine Nachricht ohne Fehler bekomme, aber die Nachricht ist nicht korrekt, ich bekomme nur die E-Mail-Informationen. so: {"email": "[email protected]"} –