Я бы хотел использовать GET/PUT/POST/DELETE
API через веб-страницу (HTML), которая будет интегрирована в Oracle JET.Веб-страница будет иметь один вариант ввода свободного текста, где пользователь может ввести, чтобы обновить запись.т.е. если я щелкну одну запись на панели инструментов JET, будет вызван API ‘GET /alluser/:FIRST_NAME
- «Чтение профиля пользователя», он отобразит подробную запись с одним текстовым полем в виде свободного текста, как только пользователь введет текст и нажметотправить, ‘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();
Спасибо.