Без сомнения, вам понравится запускать NodeJS на своем Android-устройстве. Благодаря эмулятору терминала и Linux-окружения для Android, разработка веб-приложений на смартфоне перестанет быть для вас проблемой.
![](https://habrastorage.org/r/w780q1/files/85e/dc7/a0f/85edc7a0fafd4eeba3cff8a3cf9faaed.jpg)
Termux — это бесплатное приложение, которое можно установить прямо из магазина Google Play. Требуется версия Android 5.0 или более поздняя. Не требует root-прав.
При открытии Termux вас приветствует интерфейс командной строки. Рекомендуется проверить наличие обновлений сразу после установки Termux. Введите следующую команду и нажмите Enter:
Termux поставляется в минимальной базовой комплектации, так что вы должны установить coreutils для полноценного использования команд командной строки, таких как mv, ls и др.
![](https://habrastorage.org/r/w1560/files/d45/e6e/75f/d45e6e75f09e4abb8226a16d2b0c1160.png)
Termux хранит данные в собственном хранилище данных, т.е. папка $HOME находится внутри частной области Termux, как у обычного Android приложения. Удаление Termux вызовет потерю этих данных. Если вы собираетесь хранить там важные файлы, то используйте termux-setup-storage, чтобы обеспечить сохранение данных во внешнем хранилище (например на SD-карте).
Итак, давайте создадим папку для нашего приложения и перейдем в этот каталог:
![](https://habrastorage.org/r/w1560/files/4e8/69a/e21/4e869ae2139c4738b68d3814fcbdbf37.png)
В этот момент вы, скорее всего, почувствуете некоторые проблемы при работе в консоли со стандартной клавиатурой. Чтобы обойти их, я установил хакерскую клавиатуру из Google play. Это сенсорная клавиатура, которая имеет все необходимое для написания кода — Esc, Tab и клавиши со стрелками.
![](https://habrastorage.org/r/w1560/files/cc1/e41/02c/cc1e4102cf0f41dd8225b229c95636ea.png)
Для написания кода нам понадобится любой текстовый редактор, доступный в консоли. Вы можете установить Emacs или Vim, но для простоты можно использовать nano. Установим его:
Создадим файл app.js и откроем его в редакторе:
Напишем какой-нибудь простой NodeJS-код для проверки:
Чтобы выйти из nano, нужно нажать Ctrl+X, написать 'yes' и нажать Enter.
![](https://habrastorage.org/r/w1560/files/a54/2fb/0ee/a542fb0ee28c418289ad7acf587e11e0.png)
Теперь самое время установить NodeJS. Сделать это очень просто:
Теперь мы можем наконец запустить наш скрипт:
![](https://habrastorage.org/r/w1560/files/68c/c80/ea5/68cc80ea5f3545818be7cbc97c8f74b7.png)
Вместе с NodeJS нам доступен пакетный менеджер npm. Давайте воспользуемся им:
Откроем app.js и напишем/скопи-пастим туда следующий код:
![](https://habrastorage.org/r/w1560/files/be5/d8d/723/be5d8d7234134c218cc5215013f979f4.png)
Это должно вывести в консоль номер порта по которому отвечает сервер. Если вы откроете http://localhost:8080/ в браузере, то увидите на странице следующий текст:
![](https://habrastorage.org/r/w1560/files/5df/ed0/a31/5dfed0a319c4401a969f0837e0ea7488.png)
Чтобы избежать перезагрузки сервера вручную каждый раз при изменении файла app.js мы можем установить nodemon. Nodemon — это утилита, которая будет отслеживать изменения в вашем коде и автоматически перезапустить сервер.
Теперь вы можете запустить сервер с помощью команды nodemon вместо node:
Даже с хакерской клавиатурой писать код на сенсорном экране не очень удобно. Скорее всего, вы пишите свой код в гораздо более удобных местах и храните его в репозитории. Установим git:
Теперь вы можете запускать git команды вроде git push, git pull и т.д. без каких-либо ошибок.
К сожалению, у меня не получилось запустить MongoDB-сервер на Android. В качестве альтернативы можно использовать облачные сервисы, типа MongoLab или довольствоваться чем-то вроде NeDB.
Building a Node.js application on Android
Termux is the ONE for Android
![](https://habrastorage.org/files/85e/dc7/a0f/85edc7a0fafd4eeba3cff8a3cf9faaed.jpg)
Termux
Termux — это бесплатное приложение, которое можно установить прямо из магазина Google Play. Требуется версия Android 5.0 или более поздняя. Не требует root-прав.
При открытии Termux вас приветствует интерфейс командной строки. Рекомендуется проверить наличие обновлений сразу после установки Termux. Введите следующую команду и нажмите Enter:
$ apt update
Termux поставляется в минимальной базовой комплектации, так что вы должны установить coreutils для полноценного использования команд командной строки, таких как mv, ls и др.
$ apt install coreutils
![](https://habrastorage.org/files/d45/e6e/75f/d45e6e75f09e4abb8226a16d2b0c1160.png)
Termux хранит данные в собственном хранилище данных, т.е. папка $HOME находится внутри частной области Termux, как у обычного Android приложения. Удаление Termux вызовет потерю этих данных. Если вы собираетесь хранить там важные файлы, то используйте termux-setup-storage, чтобы обеспечить сохранение данных во внешнем хранилище (например на SD-карте).
Итак, давайте создадим папку для нашего приложения и перейдем в этот каталог:
![](https://habrastorage.org/files/4e8/69a/e21/4e869ae2139c4738b68d3814fcbdbf37.png)
Клавиатура
В этот момент вы, скорее всего, почувствуете некоторые проблемы при работе в консоли со стандартной клавиатурой. Чтобы обойти их, я установил хакерскую клавиатуру из Google play. Это сенсорная клавиатура, которая имеет все необходимое для написания кода — Esc, Tab и клавиши со стрелками.
![](https://habrastorage.org/files/cc1/e41/02c/cc1e4102cf0f41dd8225b229c95636ea.png)
Nano
Для написания кода нам понадобится любой текстовый редактор, доступный в консоли. Вы можете установить Emacs или Vim, но для простоты можно использовать nano. Установим его:
$ apt install nano
Создадим файл app.js и откроем его в редакторе:
$ touch app.js
$ nano app.js
Напишем какой-нибудь простой NodeJS-код для проверки:
console.log('NodeJS running on Android');
Чтобы выйти из nano, нужно нажать Ctrl+X, написать 'yes' и нажать Enter.
![](https://habrastorage.org/files/a54/2fb/0ee/a542fb0ee28c418289ad7acf587e11e0.png)
NodeJS
Теперь самое время установить NodeJS. Сделать это очень просто:
$ apt install nodejs
Теперь мы можем наконец запустить наш скрипт:
$ node app.js
![](https://habrastorage.org/files/68c/c80/ea5/68cc80ea5f3545818be7cbc97c8f74b7.png)
Express
Вместе с NodeJS нам доступен пакетный менеджер npm. Давайте воспользуемся им:
$ npm init
$ npm install express --save
$ nano app.js
Откроем app.js и напишем/скопи-пастим туда следующий код:
var express = require('express'),
app = express(),
port = Number(process.env.PORT || 8080);
app.get('/', function(req, res) {
res.send('Express is working');
});
app.listen(port, function() {
console.log('Listening on port ' + port);
});
![](https://habrastorage.org/files/be5/d8d/723/be5d8d7234134c218cc5215013f979f4.png)
$ node app.js
Это должно вывести в консоль номер порта по которому отвечает сервер. Если вы откроете http://localhost:8080/ в браузере, то увидите на странице следующий текст:
![](https://habrastorage.org/files/5df/ed0/a31/5dfed0a319c4401a969f0837e0ea7488.png)
Nodemon
Чтобы избежать перезагрузки сервера вручную каждый раз при изменении файла app.js мы можем установить nodemon. Nodemon — это утилита, которая будет отслеживать изменения в вашем коде и автоматически перезапустить сервер.
$ npm install nodemon --save-dev
Теперь вы можете запустить сервер с помощью команды nodemon вместо node:
$ nodemon app.js
Git
Даже с хакерской клавиатурой писать код на сенсорном экране не очень удобно. Скорее всего, вы пишите свой код в гораздо более удобных местах и храните его в репозитории. Установим git:
$ apt install git
Теперь вы можете запускать git команды вроде git push, git pull и т.д. без каких-либо ошибок.
MongoDB
К сожалению, у меня не получилось запустить MongoDB-сервер на Android. В качестве альтернативы можно использовать облачные сервисы, типа MongoLab или довольствоваться чем-то вроде NeDB.
См. также:
Building a Node.js application on Android
Termux is the ONE for Android