2016-05-14 10 views
2

Ich habe einen sehr einfachen express CodeKann nicht GET/POST? Fehler im Express?

var express = require("express"); 
var bodyParser = require("body-parser"); 
var http = require("http"); 
var path = require("path"); 

var app = express(); 
app.use(bodyParser.urlencoded({ extended: false })); 

app.set("views",path.resolve(__dirname,"views")); 
app.set("view engine","ejs"); 

app.get("/",function(req,res){ 
    res.render("index"); 
}); 

app.post('/', function(req, res) { 
    console.log("posted!"); 
    res.render("final"); 
}); 



http.createServer(app).listen(3000); 

Nun, wenn ich Besuch localhost versuchen: 3000 alles lädt fein, in index.ejs Ich habe ein einfaches Formular mit einem Eingang einen Namen mname mit, whan traf ich einen Namen in das Eingabefeld ein und drücken sie die Eingabetaste I

Cannot GET /POST?mname=a 

I definiert im Code ein app.post Dieser Fehler erhalten, und bat sie final.ejs zu machen. Also, wo läuft der Code falsch?

versuchte andere Fragen sagen, dass Express 4 Benutzer "Router" für das Routing, versuchte, dass aber auch fehlgeschlagen.

Antwort

1

Sie umfassen nicht die EJS-Datei mit dem Formular, das Sie senden möchten, aber aus dem Fehler erhalten Sie es scheint, dass Sie nicht eine POST Anfrage tun, sondern einen GET Anfrage Pfad /POST. Das ist eine ganz andere Sache.

I in Form erraten haben Sie so etwas wie:

<form action='POST'> 

sondern brauchen Sie so etwas wie:

<form action='/' method='POST'> 
1

Ich hatte gerade ein ähnliches Problem und löste ich es, weil ich sind vergessen, die App.get für meinen/Post-Link.