var sql = "getByCityes";
async.map(array, function (item, cb) {
procedure(item.mon, item.tue, item.wed, item.thu, item.fri, item.sat, item.sun, item.buksumm, item.ID, sql, cb);
}, function(err, results){
if(err) console.log(err);
console.log(results);
});
};
При конвертации png картинки в jpg весь прозрачный фон превращается в черный (что за идиотизм)
Поискал в гугле такую проблему, там все работают с изображением через shell-консоль, а я через модуль в npm и никакого решения найти не смог.
gm(image).background("#FFF").stream("jpeg", cb);
var roleModule = require(./libs/roles);
var checkRole = function (name) { // пишем middleware один раз и для всех, передаем имя роутера через замыкание
return function (req, res, next) {
roleModule.hasPermission(req.currUser.role, name, function(permitted){ // возвращать флаг первым параметром ОЧЕНЬ плохая практика, по соглашению в node.js первым аргумент в коллбеке должна быть ошибка
if (permitted)
next();
else
res.sendStatus(403);
})
}
}
var router = express.Router();
router.use(checkRole("%name")); // где name это имя вашего модуля
app.use('/user', router);
MainController.prototype.findAll = function() {
var self = this;
return function (req, res) {
self.model.find({}, function (err, results) {
if (err) res.json({"findAll": err});
res.json(results); // вы забыли else, здесь будет ошибка повторной отправки данных!
});
}
};
/* -------------- */
app.get('/users', userController.findAll());
function UserController () {
MainController.apply(this, arguments);
};
UserController.prototype.checkAuth = function () { /* ваш код */}
MainController.prototype.findAll = function () { /* ваш код */}
function getTesters (cb) {
var testres = [];
Test.find({number: 1}).toArray(function (err, test) {
test.forEach(function(doc){
for(var i in doc.other) { // "for in" очень плохое решение в плане скорости, я бы заменил на var keys = Object.keys(doc.other); for(var i = 0; i < keys.length; i++) { testres[keys[i]] = /* код*/ }
testres[i] = {
name: doc.other[i].test,
lastname: doc.other[i].test2,
number: doc.number
};
cb(err, testres);
}
});
});
}
var count = 0;
var app = express();
http.createServer(app).listen(8080)
.on('connection', function(socket) {
count++;
socket.on('close', function () {
count--;
})
});
function getConnectionsCount () {
return count;
}
var app = express();
var server = http.createServer(app).listen(8080);
server.getConnections(function (err, count) {
});
product.find(function(err, products) {
async.each(products, function (product, cb) {
productInfo.find({product_id: product._id}, function(err, info) {
product.info = info;
cb(err);
});
}, function (err) {
def.resolve(products);
});
});
product.find(function(err, products) {
var p_ids = products.map(function (product) { // создаем массив id продуктов
return product._id;
});
productInfo.find({product_id : {$in: p_ids}}, function(err, infos) { // запрашиваем info для всех совпадающих id продуктов в массиве
var obj = infos.reduce(function(a, b) { // создаем коллекцию для быстрого поиска, где ключ - id продукта
return a[b.product_id ] = b;
}, {});
products.forEach(function (product) {
product.info = obj[product._id];
});
def.resolve(products);
}));
});