我是使用nodejs和express的新手 并且想知道在渲染视图之前操作数据的最佳做法是什么。目前我想根据检索到的数据设置一些变量来渲染视图。到目前为止,这就是我所拥有的,但我不确定这是最佳做法还是有更好的方法。
var request = require('request');
module.exports = function(req, res, next) {
request.get('http://nout.nout-app.com/getAccessVIPForUserId/' + req.params.id, function(err, resp, body) {
var bodyResp = JSON.parse(body);
bodyResp.data.forEach(function(el, index, array){
if(el.access_status === '1') {
el.status = 'success';
} else {
el.status = 'warning';
}
if(el.access_friend === '1') {
el.access_friend = 'yes';
} else {
el.access_friend = 'no';
}
});
console.log(bodyResp.data);
if(err || (typeof bodyResp.data === 'undefined' || bodyResp.data === null)) {
res.render('error', {
message: bodyResp.reason ? bodyResp.reason : 'Something went wrong',
error: {
status: 500
}
});
} else {
res.render('profile', {
intern: true,
user: req.user,
invitations: bodyResp.data
});
}
});
};
我很感激,如果你们能给我这方面的指导,并提出一些改进的好材料。问候。
答案 0 :(得分:0)
是的,.forEach
正在阻止(同步),但非常快。通常,您不需要担心像这样的基本数据操作。记住 - 异步不会让事情花费更少的时间,它只会让其他东西能够在同一时间内继续发生。
如果您真的想让循环异步,请查看async模块。 async.each
是.forEach