哪里可以在node.js中找到ServerResponse对象的属性?

时间:2014-03-12 19:44:19

标签: javascript node.js express

最近我关注Node.js In Action, 在第9章中有一个消息模块,以下是该模块中的一个功能, 当res.message被调用时,我对'this'对象是什么感到困惑, 所以我打印出'this'对象的名字

//in lib/messages.js 

var express = require('express'); var res = express.response; console.log(res.constructor.name); //ServerResponse

res.message = function (msg, type){
  var sess = this.req.session;  //what will be the this object?
  console.log(this.constructor.name); //ServerResponse
  console.log(this.req.constructor.name); //IncomingMessage 

  ...
}

在app.js中调用消息模块时, 似乎'this'是一个ServerResponse对象,但是我检查了node.js手册,我发现ServerResponse对象没有自己的'req'属性,所以它必须是它的原型属性。

我的问题是,我怎么知道'ServerResponse'有'req'属性所以我可以使用它?

1 个答案:

答案 0 :(得分:0)

Express接受ServerResponse并添加额外数据,这是.req属性的来源。通常,如果要检查对象是否在node.js中具有属性,您可以这样做:

if (obj.attribute !== undefined) { ... do stuff ... }
相关问题