cng-micro-service

for nodejs create javascript source code auto

Usage no npm install needed!

<script type="module">
  import cngMicroService from 'https://cdn.skypack.dev/cng-micro-service';
</script>

README

AUTO create server api for you follow cng utils, include: db, chat, logs, token, model, ...


cd /my-projects

mkdir my-api-www-api-resful-test

cd my-api-www-api-resful-test

npm init -y

npm install cng-micro-service@latest cng-node-js-utils@latest node-js-orm@latest

npm install cng-micro-service@latest

npm i fs path mime-types

Create www server:


# delete ./package.json and run this command:
node ./node_modules/cng-micro-service/sync-libs/sync-test-libs.js

run server:


# install all libs for api
npm i

# run sample server
node ./server.js

# define in package.json for test
npm test

# or

# define in package.json for start
npm start

try to test with: http://localhost:8080 or http://localhost:8080/build for make client www

try to make api server follow with: ./test/create-api-functions/0.README-create-api-function.md

Make API resful server:


mkdir logs

mkdir cfg

cp ./cfg-sample ./cfg

1. config db connection in ./cfg

database for your system is very important, you have to define connection same that sample before do next step.

2. edit ./db/excel/... sample.xlsx for designing your function_apis, and models. Following npm node-js-orm for define your model.

function_apis is important for designing your service api in function_apis sheet. In this have 55 sample apis for admin a microservice. You can edit and insert your new api same that sample before do next step.

Your database model is second important for your data. You have to design your model by excel in sample db by excel as you do everiday. Design your tables, for sample data before create db, or migrate db from other system into this microservice.

3. config for all ./config params and paths. Specialize in ./db/config/params.js for BASE_NAME, SERVICE_NAME and AUTHENTICATION_SERVER_LINK to use sso login


module.exports = {
    // your subdirectory for access your service as https://<your domain resource server>/<basename>
    // /<base-name> 
    BASE_NAME: "xxx",  
    // your service name with version
    SERVICE_NAME: "xxx-1.0",
    // your server for proxy token
    AUTHENTICATION_SERVER_LINK: "https://<your-domain or ip:port>/sso"
}

4. create and import databases from excel function_apis follow ./test/...

create granted_user database in sqlite follow ./test/create-api-functions/0.README-create-api-function.md

create main db (if you can) following ./test/create-db;

create main models as ./test/create-models

migrate your db as ./test/migrate-database

5. run to make resful server:


node ./test/create-api-functions/create-routers-handlers/x-create-api-routers-handlers.js

Now your new microservice as resful server is in ./server-<your service name>.js with following waterfall from server --> routes --> routers --> handlers. You can test this server by:


node ./server-<your service name>.js
# server run in your port - and your  designed functions_apis in excel file above

6. Now you can share your word to your team to do function and procedure in ./handlers/<your-servies-version>/<your-sub-handler>.js with all help by this sample. Only doing simple function in nodejs note more...

Pleasure your work with these steps...

for test all api by web browser include by ./client-test-apis

http://localhost: for test apis

http://localhost:/ for your web server

You can change your port in config of ./server-.js such as:


// add libs
const path = require("path");

// add root
const ROOT_DIR = __dirname
  .split(path.sep)
  .slice(0, __dirname.split(path.sep).length - 0)
  .join(path.sep);

const expressCfg = {
  port: 8080  // your port
  // ...
  // root page when http(s)://<hostname:port>/ with index.html
  , staticRoot: `${ROOT_DIR}/www-root`
  // subdirectory when http(s)://<hostname:port>/<baseDirectory> with index.html
  , staticHtml: `${ROOT_DIR}/client-ionic-react-sso/build`
  // ...

};