2017-09-23 3 views
0

이 질문은 이미 답변되었으며 답변되었습니다. 그러나, 나는 모든 충고를 따라 왔고 그것이 내가 해야하는 방법으로 그것을했다. 그러나 그것은 나를 위해 아직도 일하지 않는다. 마지막으로req.body는 항상 정의되지 않음

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; 

트위터 핸들러 :

여기
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입니다 : 여기

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

내 server.js입니다 그러면 오류가 throw됩니다.

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: Cannot read property 'topic' of undefined

.

저는 우편 배달부에서 테스트를하고 있습니다. 그렇습니다. x-www-form-urlencoded 옵션을 사용합니다.

누락 된 부분을 알려주실 수 있습니까?

다른 문제는 res.status가 함수로 인식되지 않는다는 것입니다. req 나 res에 대한 모든 함수 호출은 여러분이 대답 할 수 있다면 오류를 던질 것입니다.

답변

6

function (res, req)에서 function(req, res)으로 변경하십시오. 요청이 먼저 오면 응답을 내 보냅니다. 기억하기 쉬운 방법입니다. 또한 q은 알파벳순으로 s 전입니다.

신체가 정의되지 않은 이유는 응답이 아직 그 시점에서 초기 상태이므로 신체가 undefined

입니다.
관련 문제