0
在此Express路线中,我导入此透视模块。对象分配和对象实例
//routes/api.js
var perspectives = require('../controllers/perspectives');
router.route('/perspectives/newsletter')
.post(function(req, res){
var p = perspectives.setNewsletterHttpRequest(req);
p.updateNewsletter();
});
的setNewsletterHttpRequest(REQ)方法采用请求对象,然后返回观点模块本身的副本(Object.assign)。
//controllers/perspectives.js
perspectives.setNewsletterHttpRequest = function(req, updateMarketoOnly) {
let user = req.body.users[0];
this.validBpNewsletterUpdateInput = true;
this.user = user;
return Object.assign({},this);
}
module.exports = perspectives;
是否返回经由Object.assign在setNewsletterHttpRequest该模块保持分离该对象,以便每个请求创建其自己的实例的透视图对象(每个具有经由http请求req.body.users设置其自己的用户的值[0]行)?我试图确保没有任何方法可以修改同一对象的不同请求,但是每个请求都会修改其自身实例的状态。谢谢。
谢谢。所以我只在用户对象上使用原语,这应该没问题。但是,如果一个对象被用作属性,那么可能会有问题,如您的示例所示。这导致了另一个问题,因为从setNewsletterHttpRequest返回的每个对象都是通过一个Express路由的http请求生成的,所以不应该将每个请求隔离 - 这意味着只有一个var p = perspectives.setNewsletterHttpRequest(req)在任何给定的时间(每个都有自己的属性通过请求主体设置)? –
是的,每个'req'将是唯一的AFAIK。 – Trott