无法使用 express 发布/错误 [英] Cannot POST / error using express
本文介绍了无法使用 express 发布/错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用 express 创建一个简单的表单处理程序.我为我的表单尝试了以下代码:
<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(端口);
您应该记住的事项以备将来参考:
- 您将 url 编码扩展为 true
- 您的表单没有任何 get 请求
- 您正在使用 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 :
- You were extending url encode to true
- You were not having any get request for your form
- You were using HTML named variable which is one of bad practices
Thanks & Cheers
这篇关于无法使用 express 发布/错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文