Pakiet: https://authjs.dev/getting-started/installation?framework=pnpm
Kategoria: Node.js
nextjs – plik .gitignore
W projekcie Next.js prawidłowy plik .gitignore może wyglądać następująco:
Czytaj dalej nextjs – plik .gitignore
Nextjs – integracja z mysql
Aby zintegrować bazę danych MySQL z aplikacją Next.js, musisz wykonać kilka kroków. Next.js działa w środowisku Node.js, więc możesz użyć popularnych bibliotek, takich jak mysql2 lub ORM-ów typu `Prisma` czy TypeORM. Poniżej opisuję dwa podejścia: prostsze (z mysql2) i bardziej zaawansowane (z Prisma).
Nextjs wdrożenie na serwer
1. Zainstaluj Node.js i npm
Apache2 nie obsługuje natywnie Node.js, więc musisz zainstalować środowisko uruchomieniowe dla Next.js:
Npm – Yearn – React – instalacja
Jeśli jest zainstalowany npm
# npm install --global yarn # yarn --version Errors brak dostępu z powodu niepodpisanego skryptu
Redis – Node – komunikat z serwera
Konfiguracja redis, redis-connect w node
const {createClient} = require("redis") let redisClient = createClient({ url: 'rediss://alice:alicePassword@redis.server:6379', logErrors: true }) redisClient.connect().catch(console.error)
const RedisStore = require("connect-redis").default let redisStore = new RedisStore({ client: redisClient, prefix: "myapp:", })
Instalacja nodejs – snap
Ostatnie wersje dla debiana dostępne poprzez sanp
node – process: argv, cwd(), exit, nextTick
Argumenty wywołania programu:
Node – process: stdin, stdout
Nodemailer – obsługa poczty w node
Instalacja modułu
Node – Flash
Komunikaty przenoszone między wywołaniami przez req.session.flash – dostępne w widokach poprzez res.local.flash
Node – sessions
Obsługa sesji
E-mail regex JS
const VALID_EMAIL_REGEX = new RegExp('^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$')
if( VALID_EMAIL_REGEX.test(email) ) { ... }
Node – cookie
Hasła robocze – .credentials.development.js
exports.credentials = { cookieSecret : "9to mmóje hasło developerskie" }
Handlebars – section, partials
Sekcja pozwala wstrzykiwać kod do layoutu: arkusze CSS w <head> lub skrypty JS przed </body>. Nie jest wbudowana w silnik handlebars – wprowadzamy ją jako helper w konfiguracji engine.
Handlebars – config, składnia
Inicjalizacja silnika szablonów
Node – formularze, api json
Obsługa req.body
Node – req, res, app
Przydatne metody
Usuwa domyślny nagłówek http o serwerze
app.disable('x-powered-by')
Oczyszczanie URL
Usuwanie slash’y, query string, wszystkie małe litery
const path = req.url.replace(/\/?(?:\?.*)?$/, '').toLowerCase()
React – instalacja
Co potrzeba:
n – zarządzanie wersjami node
# npm install n -g
Aktualizuje node do ostatniej stabilnej wersji
Request, Response
Lista nagłówków HTTP
Bazowe instalacje – node.js
Automatycznie restartuje node.js gdy zauważy zmiany w kodzie
# npm init
Nodejs – Yarn package manager
instalacja
# curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - # echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list # apt-get update && apt-get install yarn
# yarn yarn install v1.19.1 info No lockfile found. [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages... success Saved lockfile. Done in 0.10s.
node szkolenia
https://nodeschool.io/pl/#workshoppers
Instalacja
# npm install -g javascripting
# npm install -g learnyounode
# npm install -g how-to-npm
Node.js, npm – debian instalacja
# apt-get install curl software-properties-common # curl -sL https://deb.nodesource.com/setup_12.x | bash - # apt-get install nodejs
# nodejs -v v12.6.0 # npm -V 6.9.0
npm
# cd my_project # npm init # npm install pakiet@versja
Debian instalacja node
# apt-get install build-essential # apt-get install curl libcurl3 php7.0 php7.0-curl # curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash - # apt-get install -y nodejs
# node -v v9.4.0 # npm -v 5.6.0
Babel
# mkdir babel_test # cd babel_test && npm init
package name: (babel_test) version: (1.0.0) description: entry point: (index.js) test command: echo "Error: no test specified" && exit 1 git repository: keywords: author: license: (ISC) About to write to D:\JS\nodejs\babel_test\package.json: { "name": "babel_test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this ok? (yes)
Instalacja babel
# npm install --save-dev babel-cli
Podmienić w package.json właściwość scripts:
"scripts": { "build": "babel src -d lib" }
Aktualizacja npm
# npm install npm@latest -g
# npm -v # node -v