使用Node.JS express框架访问Backbone.JS colection.fetch POST有效负载

时间:2014-01-31 01:44:35

标签: node.js backbone.js express

我正在使用以下代码

从Backbone.JS向服务器发送POST请求
Courses = Backbone.Collection.extend({
                url:'/courses'
            });
var courses = new Courses();
courses.fetch({data:{course_name:"data structures"},type:'POST' });

在后端我正在使用Node.JS Express框架并使用

监听请求
app.post('/courses',function(req,res){
   console.log('POST reached');
});

但我无法访问从Backbone.JS获取方法发送的POST数据或POST有效负载。 我试过 req.body.data,req.body.course_name,req.body.data.course_name ,他们没有给我POST数据。如何获取POST有效载荷?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

var CourseModel = Backbone.Model.extend({});
var CourseCollection = Backbone.Collection.extend({
  model: CourseModel
  url: '/courses'
});
var courses = new CourseCollection();
courses.create({course_name:"data structures"});

然后在你的快车路线中,你应该看到它在req.body中出现。

app.post('/courses',function(req, res){
   console.log('POST: ' + JSON.stringify(req.body));
});

此外,您需要确保包含正确的中间件来处理正文中的JSON数据。例如:

app.use(express.bodyParser());
app.use(express.methodOverride());

对于更新版本的Express,请改用:

app.use(express.json());
app.use(express.urlencoded());