Javascript req.body始终未定义
我知道这个问题已经被问到和回答了。虽然,我遵循了所有的建议,按照我应该的方式去做,但它仍然不适合我 这是我的app.js:Javascript req.body始终未定义,javascript,json,node.js,express,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.url
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());
这是我的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);
这是我的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;
最后,引发错误的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"});
}
}
};
我得到的错误是:TypeError:无法读取未定义的属性“topic”
我真的不理解我在这里的错误,我相信这是一件非常愚蠢的事情
我正在和邮递员一起测试,是的,我使用了x-www-form-urlencoded选项
有人能告诉我我错过了什么吗
我面临的另一个问题是,res.status未被视为一项功能。如果你也能回答这个问题,所有对req或res的函数调用都会抛出一个错误,那将是令人惊讶的 将函数res,req更改为函数req,res。首先是请求,然后发送响应-一种简单的记忆方法。按字母顺序,q在s之前
至于你得到未定义身体的原因——好吧,因为在那个时间点上响应仍然是原始的,所以它的身体是未定义的