WSO2 выпустил Jaggery.js , среду для создания веб-приложений и HTTP-ориентированных веб-сервисов на чистом JavaScript для всех аспектов приложения: интерфейс, связь, логика на стороне сервера и постоянство. Эта структура сократит разрыв между написанием страниц веб-приложений на стороне клиента и серверными веб-сервисами.
В этой серии руководств по Jaggery.js я расскажу о том, как выполнять основные операции CRUD с использованием Jaggery.js.
Примечание.
Если вы хотите узнать, что и как работает Jaggery.js, пожалуйста, обратитесь к моему предыдущему сообщению за дальнейшими разъяснениями.
Технологии и инструменты, используемые в этой статье:
- Jaggary.js — загрузите его отсюда
- JDK 1.6
- Chrome / Firefox
- Bootstrap для внешнего вида
- База данных MySQL и MySQL-коннектор-Java
1. Настройка
Я надеюсь, что вы загрузили все необходимые инструменты, которые упомянуты выше.
Загрузите и разархивируйте jaggary, затем перейдите
{Jaggery_home}/bin
и выполните следующие команды на терминале. Если вы пользователь Linux
sh server.sh
или Windows,
server.bat
чтобы запустить сервер
- Создайте папку с именем
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
Download the source files and try it out, Happy coding
References