nodejs

nodejs import Без расширения файла .js ERR_MODULE_NOT_FOUND es-module-specifier-resolution

Раньше можно было запускать так, напр.:

node  --es-module-specifier-resolution=node run.js
nodejs 19 es-module-specifier-resolution

После 19ой ноды надо использовать другой флаг - убирали в этом PR (было решено передать подобное поведение пользовательским загрузчикам)

node 20 load files without extension import

nodejs 18 Error: error:0308010C:digital envelope routines::unsupported Ошибка

Проблема

error:0308010C:digital envelope routines::unsupported

opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Наблюдаем ошибку в nodejs 18, который вроде как стабильный LTS в ubuntu Linux, поставлен был с помощью пакета n

Ранее такая ошибка была распространена в нестабильном nodejs 18

nodejs Обновление, откат, переключение между версиями - с помощью пакета N

Переключениие версий с помощью пакета n

Установим пакет эн (n - его название ;)) для управления версиями ноды глобально:

npm install -g n

Работа с пакетом N -- переключение версий node.js

Затем с помощью этого пакета можно менять версии, в т.ч. ставить новые, переключаться между ними:

ts-node Запуск файлов с импортом .js файлов без указания расширения для файлов javascript ESM

Файл run.ts в котором, есть импорты .js файлов без указания расширения, можно запустить так (используем пакет ts-node):

node --experimental-specifier-resolution=node  --loader ts-node/esm run.ts

При этом tsdonfig.json (у вас может отличаться):

vscode unbound breakpoint Отладка кода из node_modules nodejs. НЕ ставит точка останова

Возможная причина

Убедитесь что ваш файл из node_modules/ действительно используется в проекте (т.е. что что он импортируется), напр. м.б. вы ставите точку останова на файла в src/ пакета, а надо на такой же файл в bin/ или lib/

Как быстро определить что файл используется

-- поставьте точку останова в клиентском коде, где происходит вызов кода из node_modules/ , далее просто выполняйте по шагам, пока не окажетесь в коде лежащем в node_modules/ - так вы определите реально используемый файл из пакета

pg npm package Проверка соединения с базой даннных в консоли, nodejs

Можно так:

Создадим новую директорию, перейдем в нее.
Затем инициллизируем проект

npm init -y

Установим зависимости:

npm i pg ramda dotenv

В файле package.json включим тип модуля:

"type": "module"

Положим этот код в имяфайла.ts (имя можно любое):

pg error: password authentication failed for user Ошибка

Проблема

Проблема состоит в том, что консольный (psql) и графический (DBevear) работают нормально (удаленная база данных, порт прокинут через SSH-туннель), а pg не работает через тот же туннель выдавая ошибку:

(node:449926) UnhandledPromiseRejectionWarning: error: password authentication failed for user

Можно помочь:

UnhandledPromiseRejection ERR_UNHANDLED_REJECTION' Ошибка npm test express

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "SyntaxError: Unexpected token A in JSON at position 0".] {
code: 'ERR_UNHANDLED_REJECTION'
}
node:internal/process/promises:246
triggerUncaughtException(err, true /* fromPromise */);
^

nodejs downgrade Откат к старой версии, ubuntu Linux

Проще всего сделать так:

  1. Установим пакет эн (n - его название)) для управления версиями ноды глобально:
    npm install -g n
  2. А затем с помощью этого пакета переключим ноду на нужную нам версию:
     n 14.16.1

Подробнее о переключении между версиями см. тут: http://fkn.ktu10.com/?q=node/15936

vscode nodejs debug Передача параметров/флагов для ноды (напр. experimental-modules)

Стандартная конфигурация .vscode/launch.json:

{
    "version": "0.2.0",
    "configurations": [

        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}/run.js",
        }
    ]
}

Чтобы передать параметры, используйте не program, а args, например:

Pages

Subscribe to RSS - nodejs