Статьи

Основные операции CRUD с использованием Jaggery

 
Снимок экрана от 2014-01-18 13:10:58

WSO2 выпустил Jaggery.js , среду для создания веб-приложений и HTTP-ориентированных веб-сервисов на чистом JavaScript для всех аспектов приложения: интерфейс, связь, логика на стороне сервера и постоянство. Эта структура сократит разрыв между написанием страниц веб-приложений на стороне клиента и серверными веб-сервисами.

В этой серии руководств по Jaggery.js я расскажу о том, как выполнять основные операции CRUD с использованием Jaggery.js.Jaggeryjs

Примечание.
Если вы хотите узнать, что и как работает Jaggery.js, пожалуйста, обратитесь к моему предыдущему сообщению  за дальнейшими разъяснениями.

Технологии и инструменты, используемые в этой статье:

1. Настройка  

Я надеюсь, что вы загрузили все необходимые инструменты, которые упомянуты выше.

Загрузите и разархивируйте jaggary, затем перейдите
{Jaggery_home}/binи выполните следующие команды на терминале. Если вы пользователь Linux
sh server.shили Windows,
server.batчтобы запустить сервер

  • Снимок экрана: 2014-01-18 13:07:32
  • Создайте папку с именем crudвнутри  {Jaggery_home}/apps/пути к папке
  • Убедитесь, что ваш MySQL запущен и работает, создайте базу данных под названием tasks
  • Скопируйте файл jar коннектора MySQL (  mysql-connector-java-5.*-bin.jar) в {Jaggery_home}/carbon/repository/components/lib

2. Стандартный веб-проект 

следуйте инструкциям, как есть.

  • Создайте файл конфигурации Jaggery с именем, в jaggery.confкотором указываются конкретные настройки приложения. Для этого примера он содержит сопоставления URL-адресов приложения. Контекст приложения выглядит следующим образом.
{
"displayName":"TaskScheduler",
"urlMappings":[
     {
         "url":"/welcome/*",
     "path":"/modules/serverReq.jag"
     }]
}

  • Теперь мы собираемся создать наш первый файл Jaggery. Чтобы изолировать логику на стороне сервера, создайте serverReq.jagфайл jaggery внутри modulesкаталога.
  • Основные операции CRUD следующие.
<%
 var query1 ="CREATE TABLE example(
             id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), val VARCHAR(200));";
 var query3 ="SELECT * FROM example;";
 var query4 ="SHOW TABLES LIKE 'example';";
 config = {};
 var dataSource = new Database("
             jdbc:mysql://localhost:3306/tasks", "root", "root", config);
 result=dataSource.query(query1); 
 %>
  • Let’s move on to client side logic. for that create a javascript file called crud.js

CRUD = new function() {
   console.log("CRUD operations protocol has been initiated ");
   this.getValues = function(){
   var id = Math.floor(Math.random()*100000);
   var d = new Date().toString();
   var dateStr = d.substring(0, d.indexOf(":",20));

   var textFName = document.task.fName.value;
   var textLName = document.task.lName.value;
   var textConNo = document.task.conNo.value;

 $.post("welcome/", 
 { 
   first: textFName, 
   last: textLName, 
   contact: textConNo, 
   time: dateStr, 
   action: "add", 
   id:id 
 },
 function(data){
  $(data).hide().prependTo(".val").fadeIn("slow");
  console.log("fadein executed");
  $("#message").hide();
  $("#fName").val("");
  $("#lName").val("");
  $("#conNo").val("");
 } ); 
} 
}
  • Create your index.jag file and paste the following code

<html>
<body>
  <div class="row">
   <div class="col-lg-4">
   <form id="task" name="task">
     <div class="input-group">
     <span class="input-group-addon">First Name</span>
     <input type="text" class="form-control" id="fName" placeholder="Employee First Name">
     </div></br>
     <div class="input-group">
     <span class="input-group-addon">Last Name</span>
     <input type="text" class="form-control" id="lName" placeholder="Employee Last Name">
     </div></br>
     <div class="input-group">
     <span class="input-group-addon">Contact No</span>
     <input type="text" class="form-control" id="conNo" placeholder="Employee Contact #">
     </div></br>
     <button class="btn btn-default " onclick="CRUD.getValues();">Save changes</button>
     </form> 
  </div>
 </div>
</body>
</html>
  • So that’s all folks, then after you execute the code correctly you will be getting inputs as follows

Снимок экрана от 2014-01-18 13:10:47

Download the source files and try it out, Happy coding :)

References