Hướng dẫn can javascript connect to oracle database? - javascript có thể kết nối với cơ sở dữ liệu oracle không?

Node.js là một môi trường thời gian chạy nguồn mở, đa nền tảng để viết các ứng dụng giữa và mạng trong JavaScript. Oracle Ứng dụng Dịch vụ đám mây container (ACCS) giúp dễ dàng triển khai các ứng dụng dựa trên container trên nhiều nền tảng khác nhau, bao gồm Node.js.

Các bước sau đây trình bày cách kết nối Exadata Express từ ACCS.Exadata Express from ACCS.

Pre-requisites

Bạn phải có tài khoản Oracle Cloud với Exadata Express và Accs.Exadata Express and ACCS.

Tạo một ứng dụng kiểm tra

Trong bước này, bạn sẽ tạo một ứng dụng Node.js sẽ được triển khai cho ACCS. Ứng dụng sẽ chạy thử nghiệm kết nối cơ bản và sử dụng một máy chủ web đơn giản để báo cáo kết quả của thử nghiệm.

  1. Tạo một thư mục mới có tên connection-test-app.

  2. Thêm một tệp có tên manifest.json vào connection-test-app với các nội dung sau:

    {
      "runtime":{
        "majorVersion":"6"
      },
      "command": "node index.js",
      "release": {},
      "notes": ""
    }

    Các ứng dụng ACCS thường có một hoặc hai tệp siêu dữ liệu. Trong trường hợp này, manifest.json chỉ định phiên bản của Node.js để chạy và lệnh sẽ được sử dụng để bắt đầu ứng dụng.

  3. Thêm một tệp có tên index.js vào connection-test-app với các nội dung sau:

    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);

    Note:

    Ba biến môi trường được tham chiếu qua process.env. PORT được xác định bởi ACCS, nhưng các biến môi trường khác sẽ được tạo trong bước cuối cùng của quy trình này.

Thêm thông tin đăng nhập của khách hàng

Trong bước này, bạn sẽ tải xuống thông tin đăng nhập máy khách để kết nối với Exadata Express và đặt chúng với các tệp ứng dụng.

  1. Tải xuống thông tin đăng nhập của máy khách để kết nối với cơ sở dữ liệu Exadata Express. Xem Tải về thông tin đăng nhập của khách hàng. Sau khi tải xuống, bạn phải xử lý các tệp một cách an toàn để ngăn chặn truy cập cơ sở dữ liệu trái phép.Exadata Express database. See Download Client Credentials. Once downloaded, you must treat the files securely to prevent unauthorized database access.

  2. Trích xuất nội dung của tệp

    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    0 vào thư mục connection-test-app được tạo trước đó.

  3. Thay đổi thư mục thành thư mục

    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    2 và mở tệp
    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    3 trong trình chỉnh sửa văn bản.
    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    3 Tệp và thay đổi giá trị của thư mục từ:

    đến

    /u01/app/client_credentials.

    Với ACCS, các tệp ứng dụng được sao chép vào thư mục

    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    5 của container. Tệp
    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    3 phải trỏ đến vị trí của thông tin đăng nhập máy khách, có thể khác nhau tùy thuộc vào môi trường.

Triển khai ứng dụng

Tại thời điểm này, ứng dụng có thể được triển khai cho ACCS.

  1. Để triển khai ứng dụng cho ACCS, hãy thay đổi các thư mục trở lại thư mục được trích xuất và nén nội dung trong một tệp zip mới.

  2. Quay trở lại trình duyệt và điều hướng đến Bảng điều khiển dịch vụ ACCS. Nhấp vào Tạo ứng dụng.Create Application.

  3. Chọn nút làm nền tảng ứng dụng.Node as the application platform.

  4. Cung cấp một tên ứng dụng.

  5. Sử dụng trình chọn tệp lưu trữ để chọn kho lưu trữ ứng dụng được tạo trước đó.Archive file picker to select the application archive created earlier.


    Hướng dẫn can javascript connect to oracle database? - javascript có thể kết nối với cơ sở dữ liệu oracle không?

    Mô tả về hình minh họa ACCS-app-properies.png

  6. Đặt các phiên bản và bộ nhớ (GB): thành 1.Instances and Memory (GB): to 1.

  7. Nhấp vào Tạo để bắt đầu triển khai. Ứng dụng xuất hiện trong danh sách các ứng dụng ACCS nơi bạn có thể lấy URL. Điều hướng đến URL tại thời điểm này sẽ cho thấy bài kiểm tra đã thất bại, điều này được dự kiến.Create to start the deployment. The application appears in the list of ACCS applications where you can obtain the URL. Navigating to the URL at this point will show the test has failed, this is expected.

    Hướng dẫn can javascript connect to oracle database? - javascript có thể kết nối với cơ sở dữ liệu oracle không?

    Mô tả về hình minh họa ACCS_APP_CREATED_URL.PNG
  8. Quay trở lại bảng điều khiển dịch vụ ACCS và mở rộng ứng dụng bạn vừa thêm.

  9. Nhấp vào triển khai trên điều hướng bên trái và nhấp vào Thêm trong các biến môi trường.Deployments on the left navigation and click Add under Environmental Variables.


    Hướng dẫn can javascript connect to oracle database? - javascript có thể kết nối với cơ sở dữ liệu oracle không?

    Mô tả về hình minh họa accs_service_bindings.png
  10. Đặt tên thành

    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    7 và giá trị là
    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    8 và nhấp vào Lưu.Name to
    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    7 and Value as
    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    8 and click Save.

    Note:

    Nếu bạn đang phát triển tại địa phương, biến môi trường

    
    const http = require('http');
    const oracledb = require('oracledb');
    let error;
    let user;
     
    oracledb.getConnection(
        {
          user: process.env.EECS_USER, 
          password: process.env.EECS_PASSWORD,
          connectString: 'dbaccess'
        }, 
        function(err, connection) {
          if (err) {error = err; return;}
          
          connection.execute('select user from dual', [], function(err, result) {
            if (err) {error = err; return;}
     
            user = result.rows[0][0];
            error = null;
     
            connection.close(function(err) {
              if (err) {console.log(err);}
            });
          })
        }
    );
     
    http.createServer(function(request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
     
      if (error === null) {
        response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');
      } else if (error instanceof Error) {
        response.write('Connection test failed. Check the settings and redeploy app!\n');
        response.end(error.message);
      } else {
        response.end('Connection test pending. Refresh after a few seconds...');
      }
    }).listen(process.env.PORT);
    7 có thể chỉ ra một bản sao cục bộ của thông tin đăng nhập khách hàng được sử dụng để phát triển.

  11. Lặp lại bước 10 để tạo thêm hai biến môi trường. Đầu tiên sẽ được đặt tên là

    /u01/app/client_credentials.
    0 và giá trị của nó sẽ là tên người dùng của người dùng cơ sở dữ liệu Exadata Express mà bạn muốn kết nối. Biến môi trường cuối cùng sẽ được đặt tên
    /u01/app/client_credentials.
    1 và giá trị của nó sẽ là mật khẩu của người dùng cơ sở dữ liệu được chỉ định trong
    /u01/app/client_credentials.
    0.Exadata Express database user you want to connect with. The last environment variable will be named
    /u01/app/client_credentials.
    1 and its value will be the password of the database user specified in
    /u01/app/client_credentials.
    0.

  12. Triển khai các cài đặt này bằng cách nhấp vào Ứng dụng chỉnh sửa. Khi ứng dụng kết thúc triển khai, bạn có thể điều hướng đến URL của nó một lần nữa và bạn sẽ thấy rằng thử nghiệm kết nối đã thành công.Apply Edits. When the application finishes deploying, you can navigate to its URL again and you will see that the connection test has succeeded.

Oracle có sử dụng JavaScript không?

JavaScript Trong cơ sở dữ liệu sử dụng động cơ đa ngôn ngữ thử nghiệm của cơ sở dữ liệu Oracle, các nhà phát triển có thể sử dụng JavaScript, và các ngôn ngữ khác để di chuyển logic gần hơn với dữ liệu.Using Oracle Database's experimental Multilingual Engine (MLE), developers can use JavaScript—and other languages—to move logic closer to data.

Oracle có duy trì JavaScript không?

Bộ công cụ mở rộng Oracle JavaScript (Oracle Jet) là một thư viện JavaScript nguồn mở miễn phí, được duy trì bởi Oracle..

Làm thế nào để phản ứng JS kết nối với cơ sở dữ liệu Oracle?

Kết nối với Oracle từ Connect..
Mở kết nối và nhấp vào cơ sở dữ liệu ..
Chọn "Oracle" từ các nguồn dữ liệu có sẵn ..
Nhập các thuộc tính xác thực cần thiết để kết nối với Oracle.....
Nhấp vào cơ sở dữ liệu kiểm tra ..

Nhà phát triển Oracle SQL kết nối với Node JS như thế nào?

Kết nối một ứng dụng với nút ...
Tải xuống và cài đặt Máy khách tức thời - Xem Oracle Instant Client ..
Bật SQL*net cho dịch vụ của bạn - Xem Bật quyền truy cập Dịch vụ Oracle Net (SQL*NET) cho các ứng dụng khách ..
Tải xuống thông tin đăng nhập của khách hàng - Xem Tải xuống Thông tin đăng nhập của khách hàng ..
Cài đặt nút-foracledb cho nút ..