teek, raamistik – framework
npx degit “sveltejs/sapper-template#rollup” . –force // 2 маленьких тире. Force – принудительная установка в корне
npm run dev // запуск сервера
npm install bootsrap // скачать бустрап
npm install jquery // скачать jquery
Eesmärk:
1. Samm: Projekti seadistamine ja installatsioon
- Uue Sapperi projekti initsialiseerimine:
- Käivitage käsk:
npx degit "sveltejs/sapper-template#rollup" my-sapper-app
cd my-sapper-app
npm install
- See käsk loob Sapperi projekti malliga koos Rollupi konfiguratsiooniga.
Rakenduse käivitamine kontrollimiseks:
- Käivitage käsk:
npm run dev

2. Samm: API seadistamine serveriga suhtlemiseks
- Loo fail
src/api.js
:- See fail sisaldab funktsioone HTTP-päringute saatmiseks:
const base = 'https://your-api-domain.com/';
async function send({ method, path, data, token }) {
const fetch = process.browser ? window.fetch : require('node-fetch').default;
const opts = { method, headers: {} };
if (data) {
opts.headers['Content-Type'] = 'application/json';
opts.body = JSON.stringify(data);
}
if (token) {
opts.headers['Authorization'] = `Bearer ${token}`;
}
return fetch(`${base}/${path}`, opts)
.then((r) => r.json())
.catch((err) => { throw err; });
}
export function get(path, token) {
return send({ method: 'GET', path, token });
}
export function post(path, data, token) {
return send({ method: 'POST', path, data, token });
}
3. Samm: Serveripoolse registreerimise töötlemise seadistamine
- Nõutavate paketide installatsioon:
- Käivitage käsk:
npm install polka compression express-session session-file-store body-parser
Neid pakette kasutatakse serverirakenduse ja sessioonihalduse jaoks.
Faili src/server.js
redigeerimine:
- Konfigureerige server sessioonide toetamiseks:
import polka from 'polka';
import compression from 'compression';
import * as sapper from '@sapper/server';
import session from 'express-session';
import sessionFileStore from 'session-file-store';
import { json } from 'body-parser';
const { PORT, NODE_ENV } = process.env;
const dev = NODE_ENV === 'development';
const FileStore = sessionFileStore(session);
polka()
.use(
compression({ threshold: 0 }),
json(),
session({
secret: 'your-secret-key',
resave: true,
saveUninitialized: true,
cookie: { maxAge: 31536000 },
store: new FileStore({ path: `.sessions` })
}),
sapper.middleware({
session: (req) => ({
user: req.session && req.session.user
})
})
)
.listen(PORT, (err) => {
if (err) console.log('error', err);
});
4. Samm: Registreerimisruuteri seadistamine
- Loo kaust
src/routes/auth
ja failsrc/routes/auth/register.js
:- Konfigureerige POST-päringu töötleja registreerimiseks:
import * as api from '../../api.js';
export function post(req, res) {
const { username, name, password } = req.body;
api.post('users/register', { username, name, password })
.then((response) => {
if (response.user) {
req.session.user = response.user;
}
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(response));
})
.catch((err) => {
res.statusCode = 500;
res.end(JSON.stringify({ error: 'Registreerimine ebaõnnestus' }));
});
}
5. Samm: Klientpoolse registreerimisvormi loomine
- Loo fail
src/routes/register.svelte
:- Rakenda komponent registreerimisvormi kuvamiseks:
<script>
import { post } from '../api.js';
let username = '';
let name = '';
let password = '';
let error = null;
async function submit(event) {
event.preventDefault();
try {
const response = await post('auth/register', { username, name, password });
if (response.user) {
// Suunamine peale edukat registreerimist
location.href = '/';
} else {
error = response.error || 'Registreerimine ebaõnnestus';
}
} catch (err) {
error = 'Võrgu viga';
}
}
</script>
<form on:submit={submit}>
<input type="text" placeholder="Kasutajanimi" bind:value={username} required>
<input type="text" placeholder="Nimi" bind:value={name} required>
<input type="password" placeholder="Parool" bind:value={password} required>
<button type="submit">Registreeri</button>
{#if error}
<p class="error">{error}</p>
{/if}
</form>
SvelteJS / Sapper
teek, raamistik – framework
npx degit “sveltejs/sapper-template#rollup” . –force // 2 маленьких тире. Force – принудительная установка в корне
npm run dev // запуск сервера
npm install bootsrap // скачать бустрап
npm install jquery // скачать jquery
Eesmärk:
1. Samm: Projekti seadistamine ja installatsioon
- Uue Sapperi projekti initsialiseerimine:
- Käivitage käsk:
npx degit "sveltejs/sapper-template#rollup" my-sapper-appcd my-sapper-appnpm install
- See käsk loob Sapperi projekti malliga koos Rollupi konfiguratsiooniga.
Rakenduse käivitamine kontrollimiseks:
- Käivitage käsk:
npm run dev

2. Samm: API seadistamine serveriga suhtlemiseks
- Loo fail
src/api.js
:- See fail sisaldab funktsioone HTTP-päringute saatmiseks:
const base = 'https://your-api-domain.com/';asyncfunctionsend({ method, path, data, token }) { const fetch = process.browser ? window.fetch : require('node-fetch').default; const opts = { method, headers: {} }; if(data) { opts.headers['Content-Type'] = 'application/json'; opts.body = JSON.stringify(data); } if(token) { opts.headers['Authorization'] = `Bearer ${token}`; } returnfetch(`${base}/${path}`, opts) .then((r) => r.json()) .catch((err) => { throwerr; });}exportfunctionget(path, token) { returnsend({ method: 'GET', path, token });}exportfunctionpost(path, data, token) { returnsend({ method: 'POST', path, data, token });}
3. Samm: Serveripoolse registreerimise töötlemise seadistamine
- Nõutavate paketide installatsioon:
- Käivitage käsk:
npm installpolka compression express-session session-file-store body-parser
Neid pakette kasutatakse serverirakenduse ja sessioonihalduse jaoks.
Faili src/server.js
redigeerimine:
- Konfigureerige server sessioonide toetamiseks:
importpolka from 'polka';importcompression from 'compression';import* as sapper from '@sapper/server';importsession from 'express-session';importsessionFileStore from 'session-file-store';import{ json } from 'body-parser';const { PORT, NODE_ENV } = process.env;const dev = NODE_ENV === 'development';const FileStore = sessionFileStore(session);polka() .use( compression({ threshold: 0 }), json(), session({ secret: 'your-secret-key', resave: true, saveUninitialized: true, cookie: { maxAge: 31536000 }, store: newFileStore({ path: `.sessions` }) }), sapper.middleware({ session: (req) => ({ user: req.session && req.session.user }) }) ) .listen(PORT, (err) => { if(err) console.log('error', err); });
4. Samm: Registreerimisruuteri seadistamine
- Loo kaust
src/routes/auth
ja failsrc/routes/auth/register.js
:- Konfigureerige POST-päringu töötleja registreerimiseks:
import* as api from '../../api.js';exportfunctionpost(req, res) { const { username, name, password } = req.body; api.post('users/register', { username, name, password }) .then((response) => { if(response.user) { req.session.user = response.user; } res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(response)); }) .catch((err) => { res.statusCode = 500; res.end(JSON.stringify({ error: 'Registreerimine ebaõnnestus'})); });}
5. Samm: Klientpoolse registreerimisvormi loomine
- Loo fail
src/routes/register.svelte
:- Rakenda komponent registreerimisvormi kuvamiseks:
<script> import { post } from '../api.js'; let username = ''; let name = ''; let password = ''; let error = null; async function submit(event) { event.preventDefault(); try { const response = await post('auth/register', { username, name, password }); if (response.user) { // Suunamine peale edukat registreerimist location.href = '/'; } else { error = response.error || 'Registreerimine ebaõnnestus'; } } catch (err) { error = 'Võrgu viga'; } }</script><formon:submit={submit}> <inputtype="text"placeholder="Kasutajanimi"bind:value={username} required> <inputtype="text"placeholder="Nimi"bind:value={name} required> <inputtype="password"placeholder="Parool"bind:value={password} required> <buttontype="submit">Registreeri</button> {#if error} <pclass="error">{error}</p> {/if}</form>
6. Samm: Testimine ja silumine
- Käivitage rakendus ja testige registreerimisprotsessi.
- Lisage kliendipoolne vormi valideerimine (parooli pikkuse kontroll, kasutajanime kordumatuse kontroll jms).
- Kontrollige, et sessioonid töötavad ja kasutaja andmed salvestatakse õigesti.
Lisalähenemised
- Rakendage sisselogimise ja väljalogimise ruuterid (
login
jalogout
). - Konfigureerige volitatud kasutajate jaoks suunatud ruuterid.
- Lisage vormide välimuse parandamiseks stiilid.
Nende sammude abil saate luua rakenduse põhilise kasutajate registreerimise ja haldamise funktsionaalsusega.

