0

GET/PUT/POST/DELETEOracle JETに統合されるWebページ(HTML)を介してAPIを使用したいと考えています。Web ページには 1 つの入力フリー テキスト オプションがあり、ユーザーは入力してレコードを更新できます。つまり、JET ダッシュボードで 1 つのレコードをクリックすると、API ‘GET /alluser/:FIRST_NAME– Read the profile of an user' が呼び出され、ユーザーがテキストを入力して送信を押すと、1 つのテキスト ボックスをフリー テキストとして詳細なレコードが表示されます‘PUT /process_post–ユーザーのプロファイルの更新 API が呼び出され、レコードが更新されます。

これが私のスクリプトです

var express = require('express');
var oracledb = require('oracledb');
var app = express();
var dbConfig = require('./dbconfig.js');

var bodyParser = require('body-parser');
var port = 3000;
app.use(bodyParser.json()); // Use body parser to parse JSON body
oracledb.outFormat = oracledb.OBJECT;
// Get a non-pooled connection
function run() {
 oracledb.createPool({
      user          : dbConfig.user,
    password      : dbConfig.password,
    connectString : dbConfig.connectString
    },
    function(err) {
      if (err)
        console.error("createPool() error: " + err.message);
      else
        var server = app.listen(port,
          function () {
            console.log('Server is listening on port ' + server.address().port);                
          });
    });
}
 function doGetConnection(res, cb) {
  oracledb.getConnection(function (err, connection) {
    if (err) {
      res.set('Content-Type', 'application/json');
      res.status(500).send(JSON.stringify({
        status: 500,
        message: "Error getting DB connection",
        detailed_message: err.message

      }));
    } else {
      cb(err, connection);
      console.log("  Connection is connected");
    }
  });
}


app.post('/process_post', function (req, res) {
console.log("contenttype"+req.get('Content-Type'))      
  doGetConnection(res, function(err, connection) {
    if (err)
      return;
    connection.execute(
      "INSERT INTO TEST_TABLE(FIRST_NAME,LAST_NAME) VALUES (:FIRST_NAME,:LAST_NAME)",
    [(req.body.FIRST_NAME),(req.body.LAST_NAME) ],

      { autoCommit: true,
      outFormat:oracledb.OBJECT
      },
       console.log("check2"),
      function (err) {
      console.log("check3");
        if (err) {
        console.log("check4");
          res.set('Content-Type', 'application/json');
          res.status(400).send(JSON.stringify({
            status: 400,
            message: "Input Error",
            detailed_message: err.message
          }));
        } else {
          // Successfully created the resource
          res.status(201).set('Location', '/process_post/' + req.body.FIRST_NAME).end();

        }
        doRelease(connection, "POST /process_post");
      });
  });
});

app.get('/alluser', function (req, res) {
  doGetConnection(res, function(err, connection) {
    if (err)
      return;
    connection.execute(
      "SELECT * from employees",
      function (err, result) {
        if (err) {
          res.set('Content-Type', 'application/json');
          res.status(500).send(JSON.stringify({
            status: 500,
            message: "Error getting the farmer's profile",
            detailed_message: err.message
          }));
        } else {
          res.contentType('application/json').status(200);
          res.send(JSON.stringify(result.rows));
        }
        doRelease(connection, "GET /bananas");
      });
  });
});
app.get('/alluser/:FIRST_NAME', function (req, res) {
  doGetConnection(res, function(err, connection) {
    if (err)
      return;
    connection.execute(
      "SELECT * from employees  WHERE first_name = :f",
      { f: req.params.FIRST_NAME },
      function (err, result) {
        if (err) {
          res.set('Content-Type', 'application/json');
          res.status(500).send(JSON.stringify({
            status: 500,
            message: "Error getting the farmer's profile",
            detailed_message: err.message
          }));
        } else if (result.rows.length < 1) {
          res.set('Content-Type', 'application/json');
          res.status(404).send(JSON.stringify({
            status: 404,
            message: "FIRST_NAME doesn't exist",
            detailed_message: ""
          }));
        } else {
          res.contentType('application/json');
          res.status(200).send(JSON.stringify(result.rows));
        }
        doRelease(connection, "GET /user/" + req.params.FIRST_NAME);
      });
  });
});

function doRelease(connection, message) {
  connection.close(
    function(err) {
      if (err)
        console.error(err);
      else
        console.log(message + " : Connection released");
    });
}
run();

ありがとうございました。

4

1 に答える 1