2016-08-04 78 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); 
    } 
}); 

做了一些搜索之后,我发现它可能是因为body-parser的配置,但无法正确解决。请在下面找到节点服务器配置。

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

相关问题