- Notifications
You must be signed in to change notification settings - Fork5
This demo illustrates how easy it is to set up a client-server interaction of the SurveyJS client-side form builder component with any backend. By following the steps below you can run a sample React app with an integrated form builder. As a backend, the application uses NodeJS that stores form data in a MongoDB database.
License
surveyjs/surveyjs-nodejs-mongodb
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This demo shows how to integrateSurveyJS components with a NodeJS backend using a MongoDB database as a storage.
This demo must not be used as a real service as it doesn't cover such real-world survey service aspects as authentication, authorization, user management, access levels, and different security issues. These aspects are covered by backend-specific articles, forums, and documentation.
InstallNodeJS andDocker Desktop on your machine.
Run the following commands:
git clone https://github.com/surveyjs/surveyjs-nodejs-mongodb.gitcd surveyjs-nodejs-mongodbdocker compose up -dOpenhttp://localhost:9080 in your web browser.
The client-side part is thesurveyjs-react-client React application. The current project includes only the application's build artifacts in thepublic directory. Refer to thesurveyjs-react-client repo for full code and information about the application.
SurveyJS communicates with any database using JSON objects that contain either survey schemas or user responses. A MongoDB database should have two collections to store these objects:surveys andresults. You can refer to the following file to view a code example of how to create them:surveyjs-init.js. The diagram below shows the structure of these collections:
To modify data in thesurveys andresults collections, you need to implement several JavaScript functions. According to the tasks they perform, these functions can be split into three modules:
Query builder
JS functions that construct CRUD queries (see thenosql-crud-adapter.jsfile).Query runner
JS functions that establish connection with a database to run the queries (see themongo.jsfile).Survey storage
JS functions that provide an API for working with survey schemas and user responses (see thesurvey-storage.jsfile). This API is used by the NodeJS application router (see theindex.jsfile).
These modules interact with each other as shown on the following diagram:
If you want to integrate SurveyJS with other databases, you can modify or replace the query builder and query runner without changing the survey storage module. This approach is applied to PostgreSQL integration in the following repository:surveyjs-nodejs-postgresql.
About
This demo illustrates how easy it is to set up a client-server interaction of the SurveyJS client-side form builder component with any backend. By following the steps below you can run a sample React app with an integrated form builder. As a backend, the application uses NodeJS that stores form data in a MongoDB database.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.

