1.0.7 • Published 2 years ago

dpape-node-service v1.0.7

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
2 years ago

dpape-node-service

Nodejs for server-side development integration

Install

npm install dpape-node-service -S
# OR
yarn add dpape-node-service -S

Initial Configuration

import { init } from "dpape-node-service";
import { join } from "path";
init({
  // mysql config items
  mysql: {
    user: "root",
    password: "**********",
    database: "databaseName",
  },
  // mysql mapper xml path
  mapperBasePath: join(__dirname, "./mapper"),
  // Save log address
  logs: join(__dirname, "./logs"),
  // mongodb config items
  mongodb: {
    user: "mongo",
    password: "*********",
    database: "databaseName",
    authDatabase: "admin",
  },
});

Quick Start

// index.js
import service, { app } from "dpape-node-service";
import { join } from "path";

const userApi = app();
// Last access path `/api/user/info`
userApi.get("/info", (req, res) => {
  res.send({
    statusCode: 200,
    data: {
      name: "admin",
      age: 25,
    },
  });
});
const apis = [
  {
    path: "/user",
    app: userApi,
  },
];
service({
  staticConfig: {
    url: "/",
    address: join(__dirname, "./static"),
  },
  apiPrefix: "/api",
  apis: apis,
  port: 8080,
});

Run the script

- node index.js
- Service app listening at http://localhost:8080

Use MySql database

Create the XML mapping file./mapper/xxx.xml

<?xml version="1.0" encoding="UTF-8"?>
<mapper>
  <item key="product_name" as="productName"></item>
  <item key="product_intro" as="productIntro"></item>
  <item key="id" as="productId"></item>
  <sql type="select" name="getProductInfo">
    select product_name,product_intro from product where id = #{id}
  </sql>
</mapper>

Invoke the defined method. The name attribute in.xml

import { sqlMapper } from "dpape-node-service";
async () => {
  try {
    const result = await sqlMapper("xxx.xml", "getProductInfo");
    return result;
  } catch (err) {
    return Promise.reject(err);
  }
};

Read on for more practical tips nodejs-mysql-mapper

Use MongoDB database

import { mongo } from "dpape-node-service";
//Query
async () => {
  try {
    const result = await mongo.querys("collectionName");
    return result;
  } catch (err) {
    return Promise.reject(err);
  }
};

//Insert
async () => {
  try {
    const result = await mongo.inserts("collectionName", {
      name: "test name",
      id: 1,
    });
    return result;
  } catch (err) {
    return Promise.reject(err);
  }
};

//Update
async () => {
  try {
    const result = await mongo.updates(
      "collectionName",
      { id: 1 },
      {
        name: "update - test name",
      }
    );
    return result;
  } catch (err) {
    return Promise.reject(err);
  }
};

Logs record

import { log } from "dpape-node-service";

// info logs
log.info("This is an info log");
// error logs
log.info("This is an error log");

Logs Output (in info.log and error.log):

# error.log
[2021-05-26T15:31:41.276] [ERROR] error - This is an error log
# info.log
[2021-05-26T15:31:41.274] [INFO] info - This is an info log

init Api

NameDescribeDefault ValueRequired
mysqlMySQL config info--false
mapperBasePathmysql mapper xml path--false
mongodbmysql mongodb config items--false
logsSave log address--false

Start service Api

NameDescribeDefault ValueRequired
portService port--true
apisWeb Service List for express app--false
apiPrefixapi prefix config/apifalse
crossSupport cross-domainfalsefalse
staticConfigStatic resource address. Supports one or more configuration items--false
headersCustom request header information--false

Frequently Asked Questions

Q: Connect MySQL Error

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server;

A: Please execute the following command in MySQL

ALTER USER '[username]'@'[ip]' IDENTIFIED WITH mysql_native_password BY '[password]';
1.0.7

2 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago