Без сомнения, вам понравится запускать NodeJS на своем Android-устройстве. Благодаря эмулятору терминала и Linux-окружения для Android, разработка веб-приложений на смартфоне перестанет быть для вас проблемой.



Termux


Termux — это бесплатное приложение, которое можно установить прямо из магазина Google Play. Требуется версия Android 5.0 или более поздняя. Не требует root-прав.
При открытии Termux вас приветствует интерфейс командной строки. Рекомендуется проверить наличие обновлений сразу после установки Termux. Введите следующую команду и нажмите Enter:
$ apt update

Termux поставляется в минимальной базовой комплектации, так что вы должны установить coreutils для полноценного использования команд командной строки, таких как mv, ls и др.
$ apt install coreutils


Termux хранит данные в собственном хранилище данных, т.е. папка $HOME находится внутри частной области Termux, как у обычного Android приложения. Удаление Termux вызовет потерю этих данных. Если вы собираетесь хранить там важные файлы, то используйте termux-setup-storage, чтобы обеспечить сохранение данных во внешнем хранилище (например на SD-карте).

Итак, давайте создадим папку для нашего приложения и перейдем в этот каталог:


Клавиатура


В этот момент вы, скорее всего, почувствуете некоторые проблемы при работе в консоли со стандартной клавиатурой. Чтобы обойти их, я установил хакерскую клавиатуру из Google play. Это сенсорная клавиатура, которая имеет все необходимое для написания кода — Esc, Tab и клавиши со стрелками.


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.


NodeJS


Теперь самое время установить NodeJS. Сделать это очень просто:
$ apt install nodejs

Теперь мы можем наконец запустить наш скрипт:
$ node app.js



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);
});



$ node app.js

Это должно вывести в консоль номер порта по которому отвечает сервер. Если вы откроете http://localhost:8080/ в браузере, то увидите на странице следующий текст:

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
Поделиться с друзьями
-->

Комментарии (12)


  1. FluffyMan
    23.05.2016 12:55
    +5

    Хлеб жалко


    1. chelaxe
      23.05.2016 13:14

      Если это хлеб, а не то непонятное что продают в магазинах…


      1. k12th
        23.05.2016 14:21

        На тру-буханке из детства должна быть черная корочка, а это неизвестно что. Вообще культура печения черного хлеба утрачена, по крайней мере, в крупных городах.


    1. Artiomtb
      23.05.2016 15:03

      Да это же… :)
      image


      1. Zenitchik
        23.05.2016 15:56
        -5

        Буханка БЕЛОГО хлеба — это изврат по определению.


  1. dmitry_ch
    23.05.2016 13:23
    +3

    Уже за одну фотографию от души благодарю. Надел тот рисуночек на тетрадном листке )


  1. orcy
    23.05.2016 14:31
    +6

    Но можно ли это сделать на умных часах?


    1. xapienz
      23.05.2016 16:51
      +1

      Должно получиться, там почти тот же андроид. Главное суметь клавиатуру приделать)


  1. naneri
    23.05.2016 16:51
    +1

    Не мог понять как выйти из редактора. Потом почитал мануал, написано функционал кнопки CTRL привязан к кнопе Volume Down


    1. xapienz
      23.05.2016 16:52
      +6

      Не мог понять как выйти из редактора

      Попробуйте vim, из него можно перезагрузкой выйти


      1. naneri
        23.05.2016 16:57

        Да я уже нашёл все шорткаты:

        The result of using Ctrl in combination with a key depends on which program is used, but for many command line tools the following shortcuts works:

        Ctrl+A > Move cursor to the beginning of line
        Ctrl+C > Abort (send SIGINT to) current process
        Ctrl+D > Logout of a terminal session
        Ctrl+E > Move cursor to the end of line
        Ctrl+K > Delete from cursor to the end of line
        Ctrl+L > Clear the terminal
        Ctrl+Z > Suspend (send SIGTSTP to) current process
        The Volume up key also serves as a special key to produce certain input:

        Volume Up+E > Escape key
        Volume Up+T > Tab key
        Volume Up+1 > F1 (and Volume Up+2 > F2, etc)
        Volume Up+0 > F10
        Volume Up+B > Alt+B, back a word when using readline
        Volume Up+F > Alt+F, forward a word when using readline
        Volume Up+X > Alt+X
        Volume Up+W > Up arrow key
        Volume Up+A > Left arrow key
        Volume Up+S > Down arrow key
        Volume Up+D > Right arrow key
        Volume Up+L > | (the pipe character)
        Volume Up+U > _ (underscore)
        Volume Up+P > Page Up
        Volume Up+N > Page Down
        Volume Up+. > Ctrl+\ (SIGQUIT)
        Volume Up+V > Show the volume control


  1. Galiaf47
    26.05.2016 09:26

    Запуск node.js приложения будет возможен только из терминала?