在fetch()调用之后通过req.body访问模型数据

时间:2013-01-09 11:27:22

标签: node.js backbone.js express

我想知道我是否做错了或者是否正常我在服务器端(使用express)通过在获取后调用req.body.username(例如)来访问模型的属性是正常的()致电:

app.get("/test", function(req, res){
  console.log(req.body.username); //Undefined
});

但我可以通过PUT请求以相同的方式访问它。

实际上我使用url发送用户名,但我想清理我的路由并通过req.body来访问属性,(当然在我的模型中在客户端设置它之后)。

感谢您的解释!

更新:

如果它可能很重要,这是我的应用配置:

app.configure(function(){
  app.use(express.bodyParser());
  app.use(express.cookieParser());
  app.use(express.session({secret: 'test', store: express.session.MemoryStore({
    reapInterval: 60000 * 10
 })}));
});

1 个答案:

答案 0 :(得分:0)

我猜你在客户端使用backbone.js,因为你用它标记了你的问题。默认情况下,Backbone的sync-method似乎不会将模型数据附加到请求中。您可以将其作为提取/同步选项传递,但似乎JQuery会将数据附加到网址。您可能必须覆盖主干的sync-和/或ajax方法。我认为,在this other answer(资源必须由URI完全标识)中指出,在GET请求中包含一个正文是违反REST主体的。