2016-08-04 7 views
0

以下のajax呼び出しで、ノードサーバー側に投稿データが表示されません。いくつかの検索を行った後ノードサーバーの投稿データが表示されない

$.ajax({ 
    type: "POST", 
    url: window.location.origin + "/api/books", 
    data: { 
     title: "Javascript some good partd", 
     author: "Douglas crockford", 
     releaseDate: new Date(2013, 4, 2).getTime() 
    }, 
    dataType: "json", 
    success: function(data) { 
     console.log(data); 
    } 
}); 

、私はそれがあるため、体のパーサー構成のものであってもよいが分かったが、それは権利を取得することができませんでし。以下でノードサーバーの設定を確認してください。

app.configure(function() { 
    app.use(bodyParser()); 
    app.use(bodyParser.urlencoded()); 
    app.use(bodyParser.json()); 
    app.use(express.methodOverride()); 
    app.use(app.router); 
    app.use(express.static(path.join(application_root, 'site'))); 
    app.use(express.errorHandler({dumpExceptions: true, showStack: true})); 
}); 

そして、APIコールは次のとおりです。

app.post('/api/books', function (req, res) { 
    console.log(req.body); 
    var book = new BookModel({ 
     title: req.body.title, 
     author: req.body.author, 
     releaseDate: req.body.releaseDate 
    }); 
    return book.save(function (err, response) { 
     if (!err) { 
      return res.send(book); 
     } else { 
      console.log(err); 
     } 
    }); 
}); 

req.bodyは未定義として記録されます。誰でも問題をデバッグするのに助けてもらえますか?

答えて

1

app.configure関数を削除します。

その中のすべてのコードは、そのファイルに浮遊したままにすることができます。

私の最高の推測は、その機能を発射しないということでしょう。

私はこのコードに

var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
+0

おかげdsharrisを使用する傾向があります!私はこのコードで作業することができました。 – user3400887

関連する問題