我有一个非常简单的快递代码
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);
现在当我尝试访问localhost:3000时,一切都很好,在index.ejs中我有一个简单的表单,输入名称为mname,我在输入框中输入一个名字然后按回车我得到这个错误
Cannot GET /POST?mname=a
我在代码中定义了一个app.post,并要求它渲染final.ejs。那么代码出错了什么?
尝试了其他问题,表示4个用户"路由器"对于路由,试过但也失败了。
答案 0 :(得分:1)
您没有将ejs文件包含在您要提交的表单中,但是从您收到的错误中看来,您似乎没有执行POST
请求,而是GET
请求路径{ {1}}。这是完全不同的事情。
我想在表格中你有类似的东西:
/POST
但你需要这样的东西:
<form action='POST'>
答案 1 :(得分:1)
我遇到了类似的问题,我解决了这个问题,因为我忘了将app.get包含在我/ post链接中。