我正在使用以下代码
从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有效载荷?
答案 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());