【问题标题】:cannot GET/ error message with body parser无法使用正文解析器获取/错误消息
【发布时间】:2017-07-03 11:32:59
【问题描述】:

我对节点很陌生,所以请原谅它的简单性,但我不相信我掌握了基础知识。我正在尝试使用 bodyparser 提交表单,但收到错误消息:提交后无法获取 /newpoll?pollName=&option1=&option2=&submitButton=。

server.js

 'use strict';

 var express = require('express');
 var routes = require('./app/routes/index.js');
 var session = require('express-session');
 var bodyParser = require('body-parser');

 var app = express();


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

 routes(app, passport);

 var port = process.env.PORT || 8080;
 app.listen(port,  function () {
   console.log('Node.js listening on port ' + port + '...');
 });

index.js '使用严格';

  var path = process.cwd();
  var ClickHandler = require(path +  '/app/controllers/clickHandler.server.js');   
  var bodyParser = require('body-parser');

module.exports = function (app, passport) {

app.route('/newpoll')
    .post(isLoggedIn, bodyParser, function(req, res) {
        //console.log(req.pollName);
        console.log(req.option1);
        console.log(req.option2);

    });

 };

form action="/newpoll"。我尝试在路由器中不使用 bodyparser 变量,但它无法识别该变量,我认为可以吗?

【问题讨论】:

    标签: node.js express body-parser


    【解决方案1】:

    对于 GET 请求,端点 /newpoll 不存在,您必须发出 POST 请求才能访问数据,但是,如果您想使用 GET 请求访问数据,您可以使用get方法:

    app.route('/newpoll')
      .get(isLoggedIn, function(req, res) {
         console.log(req.query);
      })
      .post(isLoggedIn, bodyParser, function(req, res) {
        console.log(req.body);
      })
    

    【讨论】:

    • 好吧,这是有道理的,但我不在我的代码中使用 GET,我使用 POST。对吗?
    • 这有什么帮助?没有什么可以改变来解决问题。
    • 你不需要改变任何东西,你只需要发送一个 POST 请求,而不是一个 GET 请求。或者您可以创建 GET 方法并使用 req.query 访问数据。检查我的更新@andrewgi
    • 好的,感谢帮助!
    • @andrewgi 随时! :)
    猜你喜欢
    • 2011-10-24
    • 1970-01-01
    • 2015-10-25
    • 2020-06-15
    • 2015-09-18
    • 2019-11-02
    • 2021-11-14
    • 2014-12-03
    • 1970-01-01
    相关资源
    最近更新 更多