Запустить функцию в скрипте из командной строки (узел JS)



Я пишу веб-приложения в Node. Если у меня есть js-файл db.js с функцией init в нем, как я могу вызвать эту функцию из командной строки?

716   8  

8 ответов:

Нет комментариев о том, почему вы хотите это сделать, или что может быть более стандартной практикой: вот решение вашего вопроса....

в своем db.js экспорт . Есть много способов, но например:

module.exports.init = function () {
  console.log('hi');
};

тогда назовите это так, предполагая, что ваш db.js находится в том же каталоге, что и ваша командная строка:

node -e 'require("./db").init()'

для других читателей, ОП init функция могла быть вызвана чем угодно, это не важно, это просто конкретное имя, используемое в вопросе.

попробовать make-runnable.

в БД.Яш, добавить require('make-runnable'); до конца.

Теперь вы можете сделать:

node db.js init

любые дальнейшие аргументы будут переданы init метод.

согласно другим ответам, добавьте следующее к someFile.js

module.exports.someFunction = function () {
  console.log('hi');
};

затем вы должны добавить следующее package.json

"scripts": {
   "myScript": "node -e 'require(\"./someFile\").someFunction()'"
}

из терминала вы можете позвонить

npm run myScript

Я считаю, что это гораздо более простой способ запомнить команды и использовать их

установите run-func в свой проект

npm i -D run-func

запустите любую экспортированную функцию

run-func db.js init

любые следующие аргументы будут переданы в качестве параметров функции init(param1, param2)

run-func db.js init param1 param2

это также может выполняться из раздела "скрипты" в пакете.json

"db-init": "run-func db.js init"

важноinit должен быть экспортирован в вашей БД.js file

module.exports = { init };

или ES6 экспорт

export { init };

если вы включите db.js в модуль вы можете потребовать его от db_init.js и так: node db_init.js.

db.js:

module.exports = {
  method1: function () { ... },
  method2: function () { ... }
}

db_init.js:

var db = require('./db');

db.method1();
db.method2();

простой способ:

допустим, у вас есть БД.js-файл в каталоге помощников в структуре проекта.

теперь пойдите внутри каталога помощников и зайти в узле консоли

 helpers $ node

2) требуется db.js file

> var db = require("./db")

3) вызовите свою функцию (в вашем случае ее init ())

> db.init()

надеюсь, что это помогает

если ваш файл содержит только функции, например:

мой_файл.js:

function myMethod(someVariable) {
    console.log(someVariable)
}

вызов из командной строки, как это ничего не будет:

node myFile.js

но если вы измените ваш файл:

мой_файл.js:

myMethod("Hello World");

function myMethod(someVariable) {
    console.log(someVariable)
}

теперь это будет работать из командной строки:

node myFile.js

просто, в файле javascript testfile.js:

module.exports.test = function () {
   console.log('hi');
};
this.test();

запуск в командной строке:

node testfile.js

Comments

    Ничего не найдено.