{"id":19178029,"url":"https://github.com/uteamjs/uteam-node","last_synced_at":"2026-02-09T02:33:14.394Z","repository":{"id":143825507,"uuid":"396283100","full_name":"uteamjs/uteam-node","owner":"uteamjs","description":"RESTful API framework built on top of the Node.js and Express.js ecosystem seamlessly integrate with @uteamjs/react","archived":false,"fork":false,"pushed_at":"2024-07-12T04:08:44.000Z","size":115,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-21T01:29:07.582Z","etag":null,"topics":["nodejs","react","reactjs","sql"],"latest_commit_sha":null,"homepage":"https://u.team","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uteamjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-15T08:45:06.000Z","updated_at":"2024-07-12T04:08:48.000Z","dependencies_parsed_at":"2025-02-27T16:42:41.362Z","dependency_job_id":"99b1a543-501c-49b0-86e8-aa0dfb3da1fb","html_url":"https://github.com/uteamjs/uteam-node","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/uteamjs/uteam-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uteamjs%2Futeam-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uteamjs%2Futeam-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uteamjs%2Futeam-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uteamjs%2Futeam-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uteamjs","download_url":"https://codeload.github.com/uteamjs/uteam-node/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uteamjs%2Futeam-node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29254316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T01:52:29.835Z","status":"online","status_checked_at":"2026-02-09T02:00:09.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nodejs","react","reactjs","sql"],"created_at":"2024-11-09T10:36:15.684Z","updated_at":"2026-02-09T02:33:14.371Z","avatar_url":"https://github.com/uteamjs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[@uteamjs/node](https://u.team/document/uteam-node/overview) is a backend [RESTful API](https://u.team/document/uteam-node/api) framework built on top of the **Node.js** and **Express.js** ecosystem. It can be deployed alone or together with frontend [@uteamjs/react](https://u.team/document/uteam-react/overview) framework.  It is not required to set up any API endpoint in **Express.js**.  You simply put the backend functions in standard **node_modules** component structure.  This helps to simplify the deployment and management of  complex enterprise applications.\n\n# Features\n- Auto API endpoint routing\n- Hot loading module\n- Simplify database access\n- Stateless API with JWT authentication\n- Advanced flow control\n- Integrate with [@uteamjs/react](https://u.team/document/uteam-react/overview)\n\n# Installation\n[uteam CLI](https://u.team/document/uteam-react/overview) helps you automate the creation, deletion and generation of application modules and packages.\n```\n$ npm install -g uteam\n```\nUse **uteam create** to create **Node.js** application based on [@uteamjs/node](https://u.team/document/uteam-node/overview) framework:\n```\n$ uteam create -a tutorial-node -t node-application\n\n```\nChange to __...packages/main__ folder, then start the  server:\n```\n$ node server\n```\nRefer to [Get Started](https://u.team/document/introduction/getstart) for more details.\n\n# Example\nIn this following example, the name of the reducer **‘crud-api/contact’** defines the  **\\\u003cpackage\u003e/\\\u003ccomponent\u003e** destination.\n```jsx    \nconst reducer = utReducer('crud-api/contact', {\n   actions: {\n       ...\n       load: (_, payload) =\u003e _.rows = payload.rows\n   }\n})\n\nclass layout extends utform {\n   constructor(props) {\n       ...\n       props.api('load', {})\n   }\n   ...\n}\n```\nIn the server you need to create a **contact.js** file under the following folder structure:\n```\n/\u003cproject_folder\u003e/your-application/\n    ...\n    packages/\n        crud-api/\n            contact.js\n            ...\n```\nUnder the **contact.js** file, add the load function:\n```jsx\nconst { sqlseries, capitalize } = require('@uteamjs/node')\n\nexports.load = sqlseries((db, payload) =\u003e [\n   db.query('select * from contact', rows =\u003e {\n       rows.forEach(t =\u003e t.gender = capitalize(t.gender))\n       payload.rows = rows\n   })\n])\n```\nThe frontend [props.api('load', {})](https://u.team/document/uteam-react/callapi#api) function will be routed to the backend **export.load** function automatically.  \n\nAfter you execute the query, assign the result rows to the **payload** object.  \n\nCorresponding frontend layout:\n```jsx\nclass layout extends _layout {\n   constructor(props) {\n       super(props)\n       props.api('load', {})\n   }\n\n   render = () =\u003e this.Content()\n}\n```\nRefer to [CRUD Api tutorial](https://u.team/document/tutorial/crudapi) for more details.\n# License\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futeamjs%2Futeam-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futeamjs%2Futeam-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futeamjs%2Futeam-node/lists"}