নোডে, আপনি "গ্লোবাল" বা "গ্লোবাল" অবজেক্টের মাধ্যমে গ্লোবাল ভেরিয়েবল সেট করতে পারেন:
GLOBAL._ = require('underscore'); // but you "shouldn't" do this! (see note below)
বা আরও কার্যকরভাবে ...
GLOBAL.window = GLOBAL; // like in the browser
নোড উত্স থেকে, আপনি দেখতে পাচ্ছেন যে এগুলি একে অপরের সাথে পরস্পরযুক্ত:
node-v0.6.6/src/node.js:
28: global = this;
128: global.GLOBAL = global;
উপরের কোডে, "এটি" হ'ল বৈশ্বিক প্রসঙ্গ। সাধারণ জেএস মডিউল সিস্টেমের সাথে (যা নোড ব্যবহার করে) মডিউলের অভ্যন্তরে "এই" অবজেক্টটি (যেমন, "আপনার কোড") বিশ্বব্যাপী প্রসঙ্গ নয়। এর প্রমাণের জন্য, নীচে দেখুন যেখানে আমি "এই" অবজেক্টটি এবং তারপরে দৈত্য "গ্লোবাল" অবজেক্টটি বানান।
console.log("\nTHIS:");
console.log(this);
console.log("\nGLOBAL:");
console.log(global);
/* outputs ...
THIS:
{}
GLOBAL:
{ ArrayBuffer: [Function: ArrayBuffer],
Int8Array: { [Function] BYTES_PER_ELEMENT: 1 },
Uint8Array: { [Function] BYTES_PER_ELEMENT: 1 },
Int16Array: { [Function] BYTES_PER_ELEMENT: 2 },
Uint16Array: { [Function] BYTES_PER_ELEMENT: 2 },
Int32Array: { [Function] BYTES_PER_ELEMENT: 4 },
Uint32Array: { [Function] BYTES_PER_ELEMENT: 4 },
Float32Array: { [Function] BYTES_PER_ELEMENT: 4 },
Float64Array: { [Function] BYTES_PER_ELEMENT: 8 },
DataView: [Function: DataView],
global: [Circular],
process:
{ EventEmitter: [Function: EventEmitter],
title: 'node',
assert: [Function],
version: 'v0.6.5',
_tickCallback: [Function],
moduleLoadList:
[ 'Binding evals',
'Binding natives',
'NativeModule events',
'NativeModule buffer',
'Binding buffer',
'NativeModule assert',
'NativeModule util',
'NativeModule path',
'NativeModule module',
'NativeModule fs',
'Binding fs',
'Binding constants',
'NativeModule stream',
'NativeModule console',
'Binding tty_wrap',
'NativeModule tty',
'NativeModule net',
'NativeModule timers',
'Binding timer_wrap',
'NativeModule _linklist' ],
versions:
{ node: '0.6.5',
v8: '3.6.6.11',
ares: '1.7.5-DEV',
uv: '0.6',
openssl: '0.9.8n' },
nextTick: [Function],
stdout: [Getter],
arch: 'x64',
stderr: [Getter],
platform: 'darwin',
argv: [ 'node', '/workspace/zd/zgap/darwin-js/index.js' ],
stdin: [Getter],
env:
{ TERM_PROGRAM: 'iTerm.app',
'COM_GOOGLE_CHROME_FRAMEWORK_SERVICE_PROCESS/USERS/DDOPSON/LIBRARY/APPLICATION_SUPPORT/GOOGLE/CHROME_SOCKET': '/tmp/launch-nNl1vo/ServiceProcessSocket',
TERM: 'xterm',
SHELL: '/bin/bash',
TMPDIR: '/var/folders/2h/2hQmtmXlFT4yVGtr5DBpdl9LAiQ/-Tmp-/',
Apple_PubSub_Socket_Render: '/tmp/launch-9Ga0PT/Render',
USER: 'ddopson',
COMMAND_MODE: 'unix2003',
SSH_AUTH_SOCK: '/tmp/launch-sD905b/Listeners',
__CF_USER_TEXT_ENCODING: '0x12D732E7:0:0',
PATH: '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/bin:/usr/X11/bin',
PWD: '/workspace/zd/zgap/darwin-js',
LANG: 'en_US.UTF-8',
ITERM_PROFILE: 'Default',
SHLVL: '1',
COLORFGBG: '7;0',
HOME: '/Users/ddopson',
ITERM_SESSION_ID: 'w0t0p0',
LOGNAME: 'ddopson',
DISPLAY: '/tmp/launch-l9RQXI/org.x:0',
OLDPWD: '/workspace/zd/zgap/darwin-js/external',
_: './index.js' },
openStdin: [Function],
exit: [Function],
pid: 10321,
features:
{ debug: false,
uv: true,
ipv6: true,
tls_npn: false,
tls_sni: true,
tls: true },
kill: [Function],
execPath: '/usr/local/bin/node',
addListener: [Function],
_needTickCallback: [Function],
on: [Function],
removeListener: [Function],
reallyExit: [Function],
chdir: [Function],
debug: [Function],
error: [Function],
cwd: [Function],
watchFile: [Function],
umask: [Function],
getuid: [Function],
unwatchFile: [Function],
mixin: [Function],
setuid: [Function],
setgid: [Function],
createChildProcess: [Function],
getgid: [Function],
inherits: [Function],
_kill: [Function],
_byteLength: [Function],
mainModule:
{ id: '.',
exports: {},
parent: null,
filename: '/workspace/zd/zgap/darwin-js/index.js',
loaded: false,
exited: false,
children: [],
paths: [Object] },
_debugProcess: [Function],
dlopen: [Function],
uptime: [Function],
memoryUsage: [Function],
uvCounters: [Function],
binding: [Function] },
GLOBAL: [Circular],
root: [Circular],
Buffer:
{ [Function: Buffer]
poolSize: 8192,
isBuffer: [Function: isBuffer],
byteLength: [Function],
_charsWritten: 8 },
setTimeout: [Function],
setInterval: [Function],
clearTimeout: [Function],
clearInterval: [Function],
console: [Getter],
window: [Circular],
navigator: {} }
*/
** দ্রষ্টব্য: "GLOBAL._" সেট করার বিষয়ে, সাধারণভাবে আপনার করা উচিত var _ = require('underscore');
। হ্যাঁ, আপনি জাভাতে যেমন করেন তেমনই আন্ডারস্কোর ব্যবহার করে এমন প্রতিটি ফাইলই করেন import com.foo.bar;
। এটি আপনার কোড কী করছে তা নির্ধারণ করা সহজ করে কারণ ফাইলগুলির মধ্যে লিঙ্কগুলি 'স্পষ্টত'। হালকা বিরক্তিকর, তবে একটি ভাল জিনিস। .... এটাই প্রচার।
প্রতিটি নিয়মের ব্যতিক্রম আছে। আমার "GLOBAL._" সেট করার দরকার ছিল সেখানে আমার ঠিক এক নজির ছিল। আমি "কনফিগারেশন" ফাইলগুলি সংজ্ঞায়নের জন্য একটি সিস্টেম তৈরি করছিলাম যা মূলত জেএসএন ছিল, তবে কিছুটা আরও নমনীয়তার অনুমতি দেওয়ার জন্য "জেএস-এ লিখিত" ছিল। এই জাতীয় কনফিগারেশন ফাইলগুলির কোনও 'প্রয়োজনীয়' বিবৃতি ছিল না, তবে আমি তাদের আন্ডারস্কোর (এনটিআরআইআর সিস্টেমটি আন্ডারস্কোর এবং আন্ডারস্কোর টেম্পলেটগুলির উপর পূর্বাভাস দেওয়া হয়েছিল) অ্যাক্সেস পেতে চেয়েছিলাম, সুতরাং "কনফিগারেশন" মূল্যায়নের আগে আমি "GLOBAL._" সেট করে দেব। হ্যাঁ, প্রতিটি নিয়মের জন্য কোথাও একটি ব্যতিক্রম আছে। তবে আপনার কাছে আরও ভাল কারণ থাকতে পারে এবং কেবল "আমি 'প্রয়োজন' টাইপ করে ক্লান্ত হয়ে পড়েছি তাই আমি কনভেনশনটি ভেঙে যেতে চাই"।