req.body总是未定义的

Tim*_*mbo 0 javascript json node.js express

我知道这个问题已被提出并已经回答过了.虽然,我已经遵循了所有建议并按照我应该的方式完成了它,但它仍然不适合我.

这是我的app.js:

const express      = require('express');
const bodyParser   = require('body-parser');
const cors         = require('cors');

const app = module.exports = express();

app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());
app.use(cors());
Run Code Online (Sandbox Code Playgroud)

这是我的server.js:

const server = require('./dependencies/app');
const connectionHelper = require('./databaseOperations/connectionHelper');
const process =  require('process');
const routes = require("./routes");

connectionHelper.establishConnection;

process.on('exit', function ()
{
    connectionHelper.closeConnection;
});

routes(server);

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

这是我的routes.js:

const tweetHandler = require("./handler/tweetHandler");
const userHandler = require("./handler/userHandler");

let createRoutes = function(app)
{
    app.post('/submitTweet', tweetHandler.handleTweet);
    app.get('/login', userHandler.login);
}

module.exports = createRoutes;
Run Code Online (Sandbox Code Playgroud)

最后抛出错误的twitter处理程序:

const Tweet = require("../schema/tweetSchema");


module.exports = {
    handleTweet: function (res, req)
        {
            console.log(req.body);
            if (req.body.topic && req.body.tweet) {
                let tweet = new Tweet({topic: req.body.topic, tweet: req.body.tweet});

                let promise = tweet.save();

                promise.then(function (result) {
                    console.log("Result ", result);
                    res.status(200).send({message: "Tweet was successfully submitted"});
                })
            }
            else {
                res.status(401).send({message: "You need to provide a topic as well as a tweet"});
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

我得到的错误是: TypeError: Cannot read property 'topic' of undefined

我真的不理解我的错误,我确信这是非常愚蠢的.

我正在测试邮递员,是的,我使用该x-www-form-urlencoded选项.

有人可以告诉我我错过了什么吗?

我遇到的另一个问题是res.status没有被识别为函数.req或res上的所有函数调用都会抛出一个错误,如果你也可以回答那个太棒了!

hlf*_*rmn 7

更改function (res, req)function(req, res).请求首先出现,然后您发送回复 - 一种简单的记忆方式.也q就是之前s的字母顺序.

至于你得到不确定的身体的原因 - 好吧,因为在那个时间点反应仍然是原始的,它的身体是 undefined