使用快递不能POST /错误

dte*_*996 15 node.js express

我正在尝试使用express创建一个简单的表单处理程序.我为我的表单尝试了以下代码:

<form class="form"  action="/" method="post" name="regForm">              
    <div class="form-group">
        <input type="text" name="username" class="form-control" id="username" placeholder="Username">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

这是我的app.js代码:

const port = 3000;

var express = require('express'),
    app = express(),
    server = require('http').createServer(app);
var bodyParser = require('body-parser');

app.use(express.static(__dirname + '/public'));

app.use(bodyParser.urlencoded({
   extended: true;
}));

app.use(bodyParser.json());

app.post('/',function(req,res){
   var username = req.body.username;
   var html = 'Hello:' + username;
   res.send(html);
   console.log(html);
});

server.listen(port);
Run Code Online (Sandbox Code Playgroud)

提交表单后,我不断收到"CAN NOT POST /"错误.我错过了像模块这样的东西吗?

Amu*_*yap 19

这样你应该试试

const port = 3000;

var express = require('express'),
    app = express();
var bodyParser = require('body-parser');

app.use(express.static(__dirname + '/public'));

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

app.use(bodyParser.json());

app.get('/', function(req, res){
  res.render('form');// if jade
  // You should use one of line depending on type of frontend you are with
  res.sendFile(__dirname + '/form.html'); //if html file is root directory
 res.sendFile("index.html"); //if html file is within public directory
});

app.post('/',function(req,res){
   var username = req.body.username;
   var htmlData = 'Hello:' + username;
   res.send(htmlData);
   console.log(htmlData);
});

app.listen(port);
Run Code Online (Sandbox Code Playgroud)

你应该记住以后的事情参考:

  1. 您正在将url encode扩展为true
  2. 您没有获得表单的任何请求
  3. 您使用的是HTML命名变量,这是一种不良做法

谢谢和欢呼