рдиреЛрдб рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрдкреНрд░реЗрд╢рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди

рдореЗрд░реА рдпрд╣ рдзрд╛рд░рдгрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдЬ рдореЗрдВ рдЕрднреА рднреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд╕рднреА рд╕рдВрджреЗрд╣реЛрдВ рдХреЛ рджреВрд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреА рдЗрдЪреНрдЫрд╛ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореИрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рднреА рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдирдХреЗ рд▓реЗрдЦрдХ рд╣реЛрдиреЗ рдХрд╛ рдвреЛрдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рд░рдЪрдирд╛рддреНрдордХ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЗ рд▓рд┐рдПред рдореИрдВ рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреИрдЯрд░реНрди рдкрд░ рджрд╛рд╡реЛрдВ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ; рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рдпрд╣ рд╕рдм рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБJJ, CommonJS рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ mod.exports рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ node.js рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рдХрдЯреНрдЯрд░рддрд╛ рдФрд░ рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдЯрд░реНрди рдХрд╛ рдЕрдкрдирд╛ рд╕реНрдерд╛рди рд╣реИред

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ




рдХреЛрдб



// File: global.js //     if (typeof(window) != 'undefined') window.global = window; Function.prototype.override = function(fn) { var superFunction = this; return function() { this.inherited = superFunction; return fn.apply(this, arguments); } } 


 // File: moduleName.js //    moduleName (,    ) (function(moduleName) { //     console.log(' moduleName'); moduleName.publicProperty = '  '; var privateProperty = '  '; moduleName.publicMethod = function() { console.log(' publicMethod  moduleName'); }; moduleName.toBeOverridden = function() { console.log('   toBeOverriden   moduleName ( )'); }; var privateMethod = function() { console.log('  privateMethod  moduleName'); }; } (global.moduleName = global.moduleName || {})); 


 // File: moduleName.implementationName.js //    moduleName  ,      (function(moduleName) { //        console.log(' implementationName'); //      //       // moduleName.publicProperty = '  '; //      //        // var privateProperty = '   '; moduleName.publicMethod = function() { //      //       console.log('  '); }; var privateMethod = function() { console.log('   '); }; //    "Function.override" // moduleName.toBeOverridden = moduleName.toBeOverridden.override(function() { console.log(' : moduleName.toBeOverridden'); this.inherited(); //     }); //   ,     //  -         // moduleName.wrapperName = function() { //      console.log('   '); moduleName.publicMethod = moduleName.publicMethod.override(function() { console.log(' : moduleName.publicMethod'); }); }; } (global.moduleName = global.moduleName || {})); 


 // File: test.js require('./global.js'); require('./moduleName.js'); require('./moduleName.implementationName.js'); moduleName.wrapperName(); moduleName.publicMethod(); 


рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЗрдВрдкреНрд░реЗрд╕ рдореЗрдВ рдХреИрд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ



1. рд╕реНрдЯреЗрдХрдЖрдЙрдЯ : impress.constants.js impress.js рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛
2. рд╕рдмрдореЙрдбреНрдпреВрд▓реНрд╕ : db.mongodb.js db.js рдлреИрд▓реА рд╣реБрдИ рд╣реИ
3. рдЪреВрдВрдХрд┐ рд╕рднреА рдЗрдореНрдкреНрд░реЗрд╕ рд╣реИрдВрдбрд▓рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реИрдВ , рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣реИрдВрдбрд▓рд░ рдЦреБрдж рдХреЛ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЬреЗрдПрд╕, рдЕрд░реНрдерд╛рддреНред рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдирд┐рд░реНрдпрд╛рддред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 module.exports = function(req, res, callback) { res.context.data = []; db.impress.sessions.find({}).toArray(function(err, nodes) { res.context.data = nodes; callback(); }); } 


рд╕рдВрджрд░реНрдн



рдЧрд┐рддреБрдм рдкрд░ рд░реВрд╕реА рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде Global.js: github.com/tshemsedinov/global.js
Github рдкрд░ рдкреНрд░рднрд╛рд╡: https://github.com/tshemsedinov/impress
Npm рдкрд░ рдкреНрд░рднрд╛рд╡: https://npmjs.org/package/impress

рдкреБрдирд╢реНрдЪред рдореИрдВ tblasv рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЧрд╣рд░реА рдХреГрддрдЬреНрдЮрддрд╛ рд╡реНрдпрдХреНрдд рдХрд░рддрд╛ рд╣реВрдВ , рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдирд┐рдЬреА рдкрджреНрдзрддрд┐ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкрд╛рдИред

Source: https://habr.com/ru/post/In183188/


All Articles