无法使用 express 发布/错误 [英] Cannot POST / error using express

查看:24
本文介绍了无法使用 express 发布/错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

<div class="form-group"><input type="text" name="username" class="form-control" id="username" placeholder="用户名">

<button type="submit" class="btn btn-default">提交</button></表单>

这是我的 app.js 代码:

const 端口 = 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({扩展:真实;}));app.use(bodyParser.json());app.post('/',function(req,res){var 用户名 = req.body.username;var html = '你好:' + 用户名;res.send(html);控制台日志(html);});server.listen(端口);

提交表单后,我不断收到错误无法 POST/".我是否缺少像模块这样的东西?

解决方案

这种方式你应该试试

const 端口 = 3000;var express = require('express'),应用程序 = 快递();var bodyParser = require('body-parser');app.use(express.static(__dirname + '/public'));app.use(bodyParser.urlencoded({扩展:假}));app.use(bodyParser.json());app.get('/', function(req, res){res.render('form');//如果是玉//您应该根据您使用的前端类型使用其中一行res.sendFile(__dirname + '/form.html');//如果html文件是根目录res.sendFile("index.html");//如果html文件在公共目录中});app.post('/',function(req,res){var 用户名 = req.body.username;var htmlData = '你好:' + 用户名;res.send(htmlData);控制台日志(htmlData);});app.listen(端口);

您应该记住的事项以备将来参考:

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

谢谢&干杯

I am trying to create a simple form handler using express. I tried the code below for my form:

<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>

And here is my app.js code:

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);

I keep getting the error "CANNOT POST /" after submitting the form. Am I missing something like a module?

解决方案

This way you should try

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);

Things you should keep in mind for future Ref :

  1. You were extending url encode to true
  2. You were not having any get request for your form
  3. You were using HTML named variable which is one of bad practices

Thanks & Cheers

这篇关于无法使用 express 发布/错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆