Skip to content

Commit 9918c39

Browse files
committed
use ajax and api
1 parent ca8685f commit 9918c39

File tree

7 files changed

+259
-29
lines changed

7 files changed

+259
-29
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"user1" : {
3+
"name" : "mahesh",
4+
"password" : "password1",
5+
"profession" : "teacher",
6+
"id": 1
7+
},
8+
9+
"user2" : {
10+
"name" : "suresh",
11+
"password" : "password2",
12+
"profession" : "librarian",
13+
"id": 2
14+
},
15+
16+
"user3" : {
17+
"name" : "ramesh",
18+
"password" : "password3",
19+
"profession" : "clerk",
20+
"id": 3
21+
}
22+
}

6.rest-api-express-ajax/server.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
var appRoot = require('app-root-path');
2+
const path = require('path');
3+
4+
var express=require('express');
5+
var app = express();
6+
var fs = require("fs");
7+
8+
9+
var db = require('./service/database');
10+
11+
12+
13+
var user = {
14+
"user4" : {
15+
"name" : "adil",
16+
"password" : "123456",
17+
"profession" : "teacher",
18+
"id": 4
19+
}
20+
}
21+
22+
// public permisssion
23+
app.use('/public', express.static('public'));
24+
//app.use('/resource', express.static('resource'));
25+
26+
app.get('/',(req,res)=>{
27+
// res.end( 'server on working!');
28+
res.sendFile(__dirname + "/views/" + "index.html");
29+
});
30+
31+
32+
app.post('/addUser', function (req, res) {
33+
// First read existing users.
34+
fs.readFile( __dirname + "/" + "resource/data/users.json", 'utf8', function (err, data) {
35+
console.log('-----------------');
36+
console.log(data);
37+
temp = JSON.parse( data );
38+
39+
temp["user4"] = user["user4"];
40+
console.log('/////////////////');
41+
console.log( temp );
42+
res.end( JSON.stringify(temp));
43+
});
44+
})
45+
46+
app.get('/students',(req,res)=>{
47+
db.queryall().then( result =>{
48+
res.send(result);
49+
console.log(result);
50+
})
51+
});
52+
53+
54+
55+
app.listen(8000);
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
const sql = require('mssql/msnodesqlv8')
2+
3+
4+
5+
const config = {
6+
user: 'sa',
7+
password: 'Sql132',
8+
database: 'School',
9+
server: 'localhost',
10+
pool: {
11+
max: 10,
12+
min: 0,
13+
idleTimeoutMillis: 30000
14+
},
15+
options: {
16+
encrypt: false, // for azure
17+
trustServerCertificate: true, // change to true for local dev / self-signed certs
18+
trustedConnection: true,
19+
useUTC: true
20+
}
21+
}
22+
23+
sql.on('error', function (err) {
24+
// ... error handler
25+
console.log('sql error on show : ' + err);
26+
27+
})
28+
29+
30+
31+
32+
33+
// query
34+
35+
async function query(id) {
36+
// console.log('/** query start **/');
37+
try{
38+
var pool= await sql.connect(config);
39+
var result=await pool.request().input('id', sql.Int, id).query('select * from dbo.Student where id = @id');
40+
// console.log('/** query end **/');
41+
return result.recordset;
42+
}
43+
catch(error)
44+
{console.log(`query error : ${error}`); }
45+
46+
}
47+
48+
async function queryall() {
49+
// console.log('/** query start **/');
50+
try{
51+
var pool= await sql.connect(config);
52+
var result=await pool.request().query('select * from dbo.Student');
53+
// console.log('/** query end **/');
54+
return result.recordset;
55+
}
56+
catch(error)
57+
{console.log(`query error : ${error}`); }
58+
59+
}
60+
61+
62+
63+
//insert
64+
65+
function insert(name, department) {
66+
console.log('/** insert start **/');
67+
sql.connect(config).then(connection => {
68+
// Query
69+
console.log('connect show : ');
70+
var poolrec = connection.request();
71+
var q = poolrec.query(`insert into Student (student_name,department) values ('${name}','${department}')`)
72+
return q;
73+
74+
}).then(result => {
75+
console.log('inserted rows count: ' + result.rowsAffected);
76+
}).catch(err => {
77+
// ... error checks
78+
console.log('catch show : ' + err);
79+
});
80+
81+
console.log('/** insert end **/');
82+
}
83+
84+
85+
// insert using transaction
86+
87+
function insert_trans(id, department) {
88+
const pool = new sql.ConnectionPool(config);
89+
const transaction = new sql.Transaction(pool)
90+
transaction.begin(err => {
91+
// ... error checks
92+
93+
const request = new sql.Request(transaction)
94+
request.query('insert into Student (department) values (' + department + ') where id=' + id, (err, result) => {
95+
// ... error checks
96+
97+
transaction.commit(err => {
98+
// ... error checks
99+
100+
console.log("Transaction committed.")
101+
})
102+
})
103+
})
104+
}
105+
106+
107+
// update
108+
109+
function update(id, department) {
110+
console.log('/** update start **/');
111+
112+
sql.connect(config).then(connection => {
113+
// Query
114+
var count = 0;
115+
const request = new sql.Request()
116+
request.stream = true
117+
return request.input('id', sql.Int, id).query(`update Student set department='${department}' where id=@id`);
118+
119+
}).then(result => {
120+
console.log('update result rows count : ' + result.rowsAffected);
121+
122+
}).catch(err => {
123+
// ... error checks
124+
console.log('catch show : ' + err);
125+
});
126+
console.log('/** update end **/');
127+
}
128+
129+
130+
131+
//insert('jack','biology');
132+
//update(3,'oop');
133+
//query(2).then(result=>{console.log(result) ;});
134+
135+
136+
137+
module.exports = { query, queryall , insert, update };
138+

5.rest-api-express/views/index.html renamed to 6.rest-api-express-ajax/views/index.html

Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,22 @@
1313

1414
<style type="text/css">
1515
.main {
16-
width: 800px;
17-
margin: 100px auto;
18-
padding-bottom: 200px;
19-
;
16+
width: 80%;
17+
margin: 100px auto;
18+
/* padding-bottom: 200px; */
19+
/* background-color: #f7f7f7; */
20+
padding: 15px;
2021
}
22+
.title{font-size: 17pt;
23+
/* font-style: italic; */
24+
font-weight: 600;
25+
font-family: arial;}
2126

2227
.result {
2328
color: white;
2429
display: none;
2530
padding: 30px;
26-
31+
margin: 0;
2732
background-color: #71cfa4;
2833
}
2934

@@ -33,13 +38,28 @@
3338
}
3439

3540
form {
36-
background-color: aqua;
37-
padding: 30px;
41+
background-color: #f5f5f5;
42+
padding: 30px;
43+
/* border: 1px solid red; */
44+
border-radius: 8px;
3845
}
3946

47+
.continer{display: flex;}
48+
.item-same-width{flex:1;margin: 5px;}
49+
50+
.table-header{
51+
border-radius: 8px;
52+
background-color: #529576;
53+
color: white;
54+
font-weight: 600;
55+
}
56+
4057
table {
4158
font-family: arial, sans-serif;
42-
border-collapse: collapse;
59+
border-collapse: collapse;
60+
border-radius: 8px;
61+
border-style: hidden; /* hide standard table (collapsed) border */
62+
box-shadow: 0 0 0 1px #71cfa4; /* this draws the table border */
4363
width: 100%;
4464
}
4565

@@ -63,41 +83,36 @@
6383
<body>
6484
<div class="main">
6585

66-
<p>Form action</p>
86+
<p class="title">Form action</p>
87+
<hr/>
6788
<form action="/addUser" method="POST">
6889

6990
<input type="submit" value="Submit">
7091
</form>
7192

7293
<div>
73-
<p>Ajax action</p>
94+
<p class="title">Ajax action</p>
95+
<hr/>
7496
<input type="submit" id="btn_adduser" value="Submit Ajax">
7597
<p>Result</p>
98+
</div>
99+
<div class="continer">
100+
76101

77-
<pre id="result" class="result">
102+
<div class="item-same-width">
103+
<pre id="result" class="result">
78104

79105
</pre>
106+
</div>
107+
<div class="item-same-width">
108+
80109

81-
<table style="width:100%">
82-
<tr class="table-header">
83-
<td>name</td>
84-
<td>password</td>
85-
<td>professional</td>
86-
<td>id</td>
87-
</tr>
88-
89-
<tr>
90-
<td>1</td>
91-
<td>2</td>
92-
<td>3</td>
93-
<td>4</td>
94-
</tr>
95-
96-
97-
</table>
98-
</br></br></br>
99110

100111
<div id="test"></div>
112+
</div>
113+
114+
115+
101116

102117
</div>
103118

0 commit comments

Comments
 (0)