Новини зі світу Node: promise.io, copromise, Apper

       

promise.io

 Promise.io * являє собою модуль для віддаленого виклику процедур (RPC), що використовує «обіцянки» (promises). З його допомогою можна створити ось такий сервер:
 
 
var server = new PromiseIO({
  someFunc: function(input) {
    return 'I got: ' + input;
  }
});
server.listen(3000);

Клієнт може викликати
someFunc
після підключення до сервера:
 
 
var client = new PromiseIO();

client.connect('http://localhost:3000').then(function(remote) {
  return remote.someFunc('my variable!');
}).then(function(returnVal) {
  return console.log(returnVal);
}).catch(function(err) {
  return console.log(err);
});

Для реалізації «обіцянок», під капотом, використовується q .
 
 

copromise

 Copromise ** трохи схожий на co , але дана бібліотека автоматично повертає значення які не є «обіцянками», так що у вас завжди є можливість отримати що-небудь використовуючи
yield
.
 
 
Copromise являє собою можливе значення співпрограми . Де співпрограми це функція-генератор, що використовує ключове слово
yield 
для призупинення запуску і очікування отримання майбутнього значення. Даний підхід дозволяє отримати лінійне управління логікою виконання (прямування) для асинхронного коду.
Dean, оголосив про це на node.js list навівши кілька прикладів використання та порівняння з бібліотекою co .
 
 
function run(coroutine) {
    return new Promise(function(resolve, reject) {
        (function next(value, exception) {
            var result;
            try {
                result = exception ? coroutine.throw(value) : coroutine.next(value);
            } catch (error) {
                return reject(error);
            }
            if (result.done) return resolve(result.value);
            Promise.resolve(result.value).then(next, function(error) {
                next(error, true);
            });
        })();
    });
}

 

Apper

 Apper *** являє собою фреймворк реального-часу для одностанічних додатків. Ідея полягає в тому, що б мати залізобетонні угоди для практичного використання односторінкових додатків, що включають прозору мініфікацію і комплектацію.
 
Вищеописаний фреймворк є над- Express обгорткою, так що визначення шляхів маршрутизації (routes) виглядає як в звичайному проекті Express , хоча Apper має специфічні секції для таких речей як проміжне ПО або налаштування програми.
 
Наприклад:
 
 
var app = require('apper')({
    path: '.',
    port: 8000,
    host: '0.0.0.0',

    // Not commonly used. Just use `apper.json` for the configuration
    toOpenBrowser: false,
    staticContentName: 'public',
    moduleNames: {
        environment: 'environment'
        middleware: 'middleware',
        routes: 'routes',
        sockets: 'sockets'
    },
    mountPath: ''
});
app.start();

Де middleware.js буде:
 
 
module.exports = function (app) {

    app.use(function (req, res, next) {
        // middleware code
        next();
    });
};

Якщо ви незнайомі з Express , тоді вам може сподобається працювати з угодами які використовує Apper, такий підхід, принаймні, вбереже вас від тенденції зберігати всі **** у вигляді одного великого (монолітного) файлу
app.js
.
 
 

Позначки

* (GitHub: krillr / promise.io , Лізензія: Apache 2.0, npm: promise.io ) від Aaron Krill.
** (GitHub: deanlandolt / copromise , Ліцензія: MIT, npm: copromise ) від Dean Landolt.
*** (GitHub: asyncanup / apper , Ліцензія: MIT, npm: apper ) від Anup Bishno.
**** На мій погляд, тут не зовсім виражена основна думка про те що Apper це свого роду гід і над-фремворк у світ «структурованих ++» Express -програм.
  
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.