আমি নোডে একটি ওয়েব অ্যাপ লিখছি। যদি আমি এতে কোনও db.js
ফাংশন সহ কিছু জেএস ফাইল পেয়েছি তবে আমি init
কীভাবে কমান্ড লাইন থেকে সেই ফাংশনটি কল করতে পারি?
আমি নোডে একটি ওয়েব অ্যাপ লিখছি। যদি আমি এতে কোনও db.js
ফাংশন সহ কিছু জেএস ফাইল পেয়েছি তবে আমি init
কীভাবে কমান্ড লাইন থেকে সেই ফাংশনটি কল করতে পারি?
উত্তর:
আপনি কেন এটি করতে চান তা বা কোনও আরও আদর্শ মানের অনুশীলন কী হতে পারে সে সম্পর্কে কোনও মন্তব্য নয়: এখানে আপনার প্রশ্নের সমাধান রয়েছে in মনে রাখবেন যে আপনার কমান্ড লাইনের দ্বারা প্রয়োজনীয় উক্তিগুলি বিভিন্ন রকম হতে পারে।
আপনার মধ্যে db.js
, init
ফাংশন রফতানি । অনেকগুলি উপায় রয়েছে তবে উদাহরণস্বরূপ:
module.exports.init = function () {
console.log('hi');
};
তারপরে db.js
আপনার কমান্ড প্রম্প্টের একই ডিরেক্টরিতে রয়েছে তা ধরে নিয়ে এটিকে ডাকুন :
node -e 'require("./db").init()'
অন্যান্য পাঠকদের জন্য, ওপি-র কার্যটি যে init
কোনও কিছু বলা যেতে পারে, এটি গুরুত্বপূর্ণ নয়, এটি কেবলমাত্র প্রশ্নে ব্যবহৃত নির্দিষ্ট নাম।
module.exports.init = function () { console.log('hi'); };
আর node -e 'require("./db").init()'
একরকম আমার জন্য কাজ করে নি। আমি কী ভুল করেছি তা নিশ্চিত নই, তবে আপনার ধারণাকে অনুসরণ করে আমি ব্যবহার করেছি module.exports = myFunction,
এবং তারপরে node -e 'require("./myFunction")()'
আমার পক্ষে কাজ করেছি।
node -e 'require("./index").handler(require("./fixtures/sample_event_01.json"), {}, console.log)'
। মাঝেরটি {}
প্রসঙ্গ হবে, বিনা দ্বিধায় সমন্বয় করুন। এছাড়াও কনসোল.লগ কিছুটা আদিম তবে একটি দুর্দান্ত শুরু। অবশ্যই আপনি একটি উত্সর্গীকৃত CLI.js লিখতে পারেন যা পরিবর্তে () এর সূচক প্রয়োজন sjs / হ্যান্ডলার হিসাবে অন্যান্য মন্তব্যে বর্ণিত।
অন্যান্য উত্তর অনুসারে, নিম্নলিখিতটি যুক্ত করুন someFile.js
module.exports.someFunction = function () {
console.log('hi');
};
তারপরে আপনি নিম্নলিখিতটি যুক্ত করতে পারেন package.json
"scripts": {
"myScript": "node -e 'require(\"./someFile\").someFunction()'"
}
টার্মিনাল থেকে, আপনি কল করতে পারেন
npm run myScript
কমান্ডগুলি মনে রাখার এবং সেগুলি ব্যবহার করার জন্য আমি এটি একটি আরও সহজ উপায়
সরাসরি সিএলআই থেকে চালান (গ্লোবাল)
ইনস্টল করুন
npm i -g run-func
ব্যবহার অর্থাৎ রান ফাংশন "init", এটি রফতানি করতে হবে, নীচে দেখুন
run-func db.js init
অথবা
প্যাকেজ.জসন স্ক্রিপ্ট থেকে চালান (স্থানীয়)
ইনস্টল করুন
npm i -S run-func
সেটআপ
"scripts": {
"init": "run-func db.js init"
}
ব্যবহার
npm run init
প্যারাম
নিম্নলিখিত যে কোনও যুক্তি ফাংশন পরামিতি হিসাবে পাস করা হবে init(param1, param2)
run-func db.js init param1 param2
গুরুত্বপূর্ণ
ফাংশন (এই উদাহরণে init
) অবশ্যই এতে থাকা ফাইলটিতে রফতানি করতে হবে
module.exports = { init };
বা ES6 রফতানি
export { init };
make-runnable
, তবে এটি এর থেকে অনেক ভাল me ধন্যবাদ।
npm i -g run-func
সহজ উপায়:
ধরা যাক আপনার প্রকল্প কাঠামোর একটি সহায়ক ডিরেক্টরিতে db.js ফাইল রয়েছে।
এখন সহায়িকা ডিরেক্টরি ভিতরে যান এবং নোড কনসোল যান
helpers $ node
2) db.js ফাইলের প্রয়োজন
> var db = require("./db")
3) আপনার ফাংশন কল করুন (আপনার ক্ষেত্রে এটির init ())
> db.init()
আশাকরি এটা সাহায্য করবে
এই এক নোংরা কিন্তু কাজ করে :)
আমি main()
আমার স্ক্রিপ্ট থেকে ফাংশন কল করা হবে । পূর্বে আমি স্ক্রিপ্টের শেষে কেবল কল করেছিলাম। তবে আমি কিছু অন্যান্য ফাংশন যুক্ত করেছি এবং এগুলি স্ক্রিপ্ট থেকে রফতানি করেছি (কোডের অন্য কোনও অংশে ফাংশন ব্যবহার করতে) - তবে আমি যখনই অন্যান্য স্ক্রিপ্টগুলিতে অন্যান্য ফাংশন আমদানি করি তখন মূল () ফাংশন সম্পাদন করতে চাই না।
সুতরাং আমি এটি করেছি, আমার স্ক্রিপ্টে আমি কলটি মুখ্য () এ সরিয়েছি এবং পরিবর্তে স্ক্রিপ্টের শেষে আমি এই চেকটি রেখেছি:
if (process.argv.includes('main')) {
main();
}
সুতরাং আমি যখন CLI- এ এই ফাংশনটি কল করতে চাই: node src/myScript.js main
আমি একটি আইআইএফই করি, এরকম কিছু:
(() => init())();
এই কোডটি তাত্ক্ষণিকভাবে কার্যকর করা হবে এবং আরআর ফাংশনটি অনুরোধ করবে।
node init.js
এবং ফাইলটিতে একটি আইআইএফই রয়েছে এটি কাজ করবে। আমি মনে করি আপনার প্রশ্নটি আমি পুরোপুরি বুঝতে পারি নি। দুঃখিত।
(init)();
করতে পারেন :)
সরল, জাভাস্ক্রিপ্ট ফাইল টেস্টফিল.জেজে:
module.exports.test = function () {
console.log('hi');
};
this.test();
প্রম্পটে চলছে:
node testfile.js
test
প্রতিবার চালানো হয়, সুতরাং আপনাকে অন্য ফাংশনটি কল করার জন্য ফাইলটি পরিবর্তন করতে হবে)
যদি আপনার ফাইলটিতে কেবল আপনার ফাংশন থাকে তবে উদাহরণস্বরূপ:
myFile.js:
function myMethod(someVariable) {
console.log(someVariable)
}
কমান্ড লাইন থেকে এটি কল করা এরকম কিছু হবে না:
node myFile.js
তবে আপনি যদি নিজের ফাইলটি পরিবর্তন করেন:
myFile.js:
myMethod("Hello World");
function myMethod(someVariable) {
console.log(someVariable)
}
এখন এটি কমান্ড লাইন থেকে কাজ করবে:
node myFile.js