当我尝试提交HTML表单时显示错误“无法POST”

我也看到了同样的错误的其他问题,但没有一个答案似乎工作。

<!DOCTYPE html> <html> <body> <form action="http://127.0.0.1:8080/del" method="post"> First name: <input type="text" name="fname"><br> Last name: <input type="text" name="lname"><br> <input type="submit" value="Submit"> </form> <p>Click on the submit button, and the input will be sent to a page on the server called "http://127.0.0.1:8080/del".</p> </body> </html> 

server.js

 var express=require('express'); var body_parser=require('body-parser'); var request = require('request').defaults({json:true}); var app=express(); var del=require('./del'); app.post('./del',del.test); var server = app.listen(8080,function(){ var host="127.0.0.1"; var port="8080"; console.log("App is listening at http://%s:%s\n",host,port); }); 

del.js

 module.exports={ test: function(){ console.log("Hello world."); } }; 

每当我提交表格时,就会显示出来

不能POST / del

在你的server.js中改变这一行:

 app.post('./del',del.test); 

对此:

 app.post('/del',del.test); 

那么你有正确的路由器。

而你的del.js改为:

 module.exports={ test: function(req, res){ console.log("Hello world."); res.status(200).end(); } }; 

因为路由器function应该返回响应。