当前位置: 首页 > 面试题库 >

无法使用Express发布/出错

蔡鸿骞
2023-03-14
问题内容

我正在尝试使用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>

这是我的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);

提交表单后,我不断收到错误消息“ CANNOT POST /”。我是否缺少类似模块的内容?


问题答案:

这样你应该尝试

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

您将来应该记住的事情参考:

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

谢谢与欢呼



 类似资料:
  • 问题内容: 使用express 3.1.0,我有一个非常简单的形式: 并在app.js中: 尝试发布此表单时,我得到: 并在控制台中: 我在这里想念什么? 问题答案: 您的示例对我有用。我删除了对用户,用户和路由的引用,以便可以运行它,并且HTTP POST已接收并正确显示在控制台中。 我怀疑该错误是在您的User.addUser()代码中。

  • 嗨,我试图张贴数据与AngarJs,但有一些问题。我的js代码如下: 我得到这个错误和当我改变代码喜欢这个然后我得到了这个错误。 无法发布到登录。html页面。这是我在AnguarJs上的第一个项目,所以不太熟悉。谢谢

  • 我无法将数据从postman发布到我正在使用的mysql数据库express 我尝试过使用Body和Raw x-www-form-urlencoded 这是我的代码(是的,所有内容都在同一个文件中,我知道这不是一件好事,我很抱歉) 这是我在邮递员和数据库中的截图错误

  • 我正在尝试根据下面的代码提出帖子请求: 此请求不需要身份验证,也不需要登录和密码。在邮递员那里,我可以成功地提出请求,但当我尝试执行上述代码时,我得到了: 401未经授权 我在邮递员那里模拟了错误,它给了我下面的信息: 当我在Postman中将身份验证方法更改为“No Auth”时,请求运行良好。 我想我必须在代码中设置这个选项“No Auth”,但我不知道如何设置。 我这样做: 但错误仍在继续。

  • 我是Node.js的新手,我正在尝试运行一个MERN电影票预订系统。前端中的以下代码段表示为特定电影上传图像的函数: null null 这是我在服务器端的index.js: null null 下面是路由器的代码段。/routes/movies null null 图像无法上传,当我运行inspect/console时,它会在这里显示enter image description

  • Express 堪称是 Node.js 领域最为流行的Web开发框架,由著名的开发者 TJ 开发,现在已经衍生到4.x版本。 Express的”Hello World” 以下是一个简单的使用 Express 作为服务器的代码,通过 res.send() 方法将 Hello World 字符串作为 Response 返回: var express = require('express'); var