A minimal fullβstack app using Express (Node.js) + SQLite backend and React (Vite) frontend. It implements CRUD for a simple Task entity.
Works great locally, in VS Code, and in SAP Business Application Studio (Dev Space: Node.js / Full-Stack). You can also deploy the server to SAP BTP (Cloud Foundry) and serve the built React app from the same process.
node-crud-fullstack-sap-build/
ββ server/ # Express + SQLite API
β ββ src/
β β ββ index.js # App entry, mounts /api/tasks
β β ββ routes/tasks.js # CRUD routes
β ββ src/db.js # SQLite init
β ββ package.json
β ββ .env # PORT=4000
ββ client/ # React + Vite UI
ββ src/
β ββ components/
β β ββ TaskForm.jsx
β β ββ TaskList.jsx
β ββ App.jsx
β ββ api.js
β ββ main.jsx
ββ index.html
ββ vite.config.js
ββ package.json
Terminal A β API
cd server
npm install
npm run dev # starts http://localhost:4000Terminal B β Frontend
cd client
npm install
npm run dev # opens http://localhost:5173, proxy to /apiAfter starting the server, try:
curl -X POST http://localhost:4000/api/tasks -H 'Content-Type: application/json' -d '{"title":"First task","description":"Hello"}'
curl http://localhost:4000/api/tasks# Build static frontend
cd client && npm install && npm run build
# Start server in production mode (serves client/dist)
cd ../server
NODE_ENV=production npm start
# Open http://localhost:4000- Create a Node.js dev space.
- Upload or clone this project.
- Open two terminals and follow the local run steps above.
- Optional: configure a Cloud Foundry target and push the server with a
manifest.yml(bind to a SQLite-compatible persistent storage or migrate to SAP HANA Cloud / PostgreSQL). Frontend build can be served by the same Express app.
GET /api/tasksβ list tasksGET /api/tasks/:idβ fetch onePOST /api/tasksβ create{ title, description?, status? }PUT /api/tasks/:idβ update any of{ title, description, status }DELETE /api/tasks/:idβ remove
MIT β use freely.