Вызов MSSQL процедур через NodeJS

Для прямого запроса к базе данных в NodeJS доступна библиотека mssql

// https://github.com/tediousjs/node-mssql
npm install mssql

Далее формируем config для подключения к БД:

const config = {
    user: 'логин',
    password: 'пароль',
    server: 'dbsrv\\sql2017',
    database: 'MobileService',
    options: {
        enableArithAbort: false
    }
}

Пример выполнения процедуры:

const sql = require('mssql');
sql.connect(config, function (err) {
    var request = new sql.Request();
    request.input('User', '5B26F42C-C6E7-4B92-AFED-972EAB0B095A')
        .input('Date', '02-07-2020')
        .execute('[dbo].[UI_Get_Statistics_By_User]', (err, result) => {
            if (!err) {
                var items = result.recordset;
                console.log(items);
            } else {
                console.error(err);
            }
            sql.close();
        });
});

Распределение нагрузки в IIS для NodeJS

Главная проблема javascript это то что он однопоточный. Эта же проблема есть и в приложения написанных на NodeJS.

Итак нам понадобится:

  • виртуальная машина с Windows Server 2012 или выше
  • установленная IIS
  • приложение на NodeJS (в примере будет использоваться фреймворк Express)
  • и «магия»

Инструкцию по установке Windows и настройке IIS описывать не буду, это можно найти в интернете. Приступаем сразу к запуску NodeJS приложения.

Читать далее «Распределение нагрузки в IIS для NodeJS»

Запуск nodejs служб на ubuntu 18

В директории /lib/systemd/system требуется создать файл с расширением .service

Файл должен содержать следующую информацию

[Unit]
Description=docs service by nodejs
After=network-online.target

[Service]
User=www-data 
Restart=on-failure
WorkingDirectory=/var/www/docs
ExecStart=/usr/bin/node /var/www/docs/bin/www

[Install]
WantedBy=multi-user.target

где,

  • User — имя пользователя от имени которого запускается служба
  • WorkingDirectory — каталог с приложением, где nodejs

После этого требуется перезапустить daemon

systemctl daemon-reload
systemctl restart docs 
systemctl status docs

, где docs имя службы

Удаленная отладка nodejs приложений

Предварительно требуется установить node-inspect

 npm install -g node-inspect 

Далее от имени sudo запускаем команду

sudo node --inspect bin/www

где bin/www исполняемый файл (он может заканчивать на js)

Если машина на который будет производиться отладка работает под Windows, то нужно поставить OpenSSH.

Читать далее «Удаленная отладка nodejs приложений»

Временная зона для PostgreSql+NodeJs

Если на сервере БД хранить дату с типом timestamp without time zone, и использовать модуль nodejs pg то дата будет возвращается в формате локального компьютера, а нужно что бы было также в UTC

Решение

Устанавливаем moment

npm install monent

Настраиваем pg

pg.types.setTypeParser(1114, str => moment.utc(str + '+00:00').format()); 

Оригинал статьи: Working with PostgreSQL’s timestamp without timezone in Node

Проигрывание аудио записи на устройстве через Termux

Устанавливаем на устройстве приложение

apt install mpv

Выполняем команду и на телефоне должна заиграть музыка:

mpv https://appcode.mobwal.com/betkhoven-simfonija-5-allegro-con-brio.mp3

Можно например запустить воспроизведение в определенной позиции:

mpv https://appcode.mobwal.com/betkhoven-simfonija-5-allegro-con-brio.mp3 --start=00:00:59

Termux для Android

Данное приложение предназначено для установки nodejs на устройство под управление ОС Android. В Google Play находим приложение Termux и устанавливаем на телефон (требуется минимальная версия android 5). Запускаем приложение и устанавливаем нужные пакеты, выполнив следующие команды:

apt update
apt upgrade
apt install coreutils
apt install nodejs
Читать далее «Termux для Android»