Skip to content

Commit e486860

Browse files
committed
Updated Todo Node.Js app to use express4-tedious middleware
Node.js data access added as npm module express4-tedious.
1 parent 7104348 commit e486860

File tree

6 files changed

+42
-115
lines changed

6 files changed

+42
-115
lines changed

samples/features/json/todo-app/nodejs-express4-rest-api/.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@ node_modules/*
22
bin/*.dll
33
obj/*
44
*.sln
5-
*.log
5+
*.log
6+
config/Development.json
7+
config/Production.json

samples/features/json/todo-app/nodejs-express4-rest-api/app.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
var express = require('express');
2+
var config = require('config');
23
var bodyParser = require('body-parser');
4+
var tediousExpress = require('express4-tedious');
35

46
var app = express();
7+
app.use(function (req, res, next) {
8+
req.query = tediousExpress(req, config.get('connection'));
9+
next();
10+
});
11+
512
app.use(bodyParser.text());
613
app.use('/todo', require('./routes/todo'));
714

815
// catch 404 and forward to error handler
916
app.use(function (req, res, next) {
10-
var err = new Error('Not Found');
17+
var err = new Error('Not Found: '+ req.method + ":" + req.originalUrl);
1118
err.status = 404;
1219
next(err);
1320
});
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"connection":{
3+
"server" : "<<server name or ip>>",
4+
"userName": "<<user name>>",
5+
"password": "<<password>>",
6+
"options": { "encrypt": true, "database": "<<database name>>" }
7+
}
8+
}

samples/features/json/todo-app/nodejs-express4-rest-api/db.js

Lines changed: 0 additions & 85 deletions
This file was deleted.

samples/features/json/todo-app/nodejs-express4-rest-api/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
},
1313
"dependencies": {
1414
"body-parser": "^1.15.2",
15+
"config": "^1.26.1",
1516
"debug": "^2.2.0",
1617
"express": "^4.14.0",
17-
"tedious": "^1.14.0"
18+
"tedious": "^1.14.0",
19+
"express4-tedious": "^0.1.0"
1820
}
1921
}
Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,49 @@
1-
var express = require('express');
2-
var router = express.Router();
3-
4-
var db = require('../db.js');
1+
var router = require('express').Router();
52
var TYPES = require('tedious').TYPES;
63

74
/* GET task listing. */
85
router.get('/', function (req, res) {
9-
db.stream("select * from todo for json path", db.createConnection(), res, '[]');
6+
7+
req.query("select * from todo for json path")
8+
.into(res, '[]');
9+
1010
});
1111

1212
/* GET single task. */
1313
router.get('/:id', function (req, res) {
1414

15-
var conn = db.createConnection();
15+
req.query("select * from todo where id = @id for json path, without_array_wrapper")
16+
.param('id', req.params.id, TYPES.Int)
17+
.into(res, '{}');
1618

17-
var request = db.createRequest("select * from todo where id = @id for json path, without_array_wrapper", conn);
18-
request.addParameter('id', TYPES.Int, req.params.id);
19-
db.stream(request, conn, res, '{}');
2019
});
2120

2221
/* POST create task. */
2322
router.post('/', function (req, res) {
2423

25-
var connection = db.createConnection();
26-
var request = db.createRequest("exec createTodo @todo", connection);
27-
28-
request.addParameter('todo', TYPES.NVarChar, req.body);
29-
30-
db.executeRequest(request, connection);
24+
req.query("exec createTodo @todo")
25+
.param('todo', req.body, TYPES.NVarChar)
26+
.exec(res);
27+
3128
});
3229

3330
/* PUT update task. */
3431
router.put('/:id', function (req, res) {
3532

36-
var connection = db.createConnection();
37-
var request = db.createRequest("exec updateTodo @id, @todo", connection);
38-
39-
request.addParameter('id', TYPES.Int, req.params.id);
40-
request.addParameter('todo', TYPES.NVarChar, req.body);
41-
42-
db.executeRequest(request, connection);
33+
req.query("exec updateTodo @id, @todo")
34+
.param('id', req.params.id, TYPES.Int)
35+
.param('todo', req.body, TYPES.NVarChar)
36+
.exec(res);
37+
4338
});
4439

4540
/* DELETE single task. */
4641
router.delete('/:id', function (req, res) {
4742

48-
var connection = db.createConnection();
49-
var request = db.createRequest("delete from todo where id = @id", connection);
43+
req.query("delete from todo where id = @id")
44+
.param('id', req.params.id, TYPES.Int)
45+
.exec(res);
5046

51-
request.addParameter('id', TYPES.Int, req.params.id);
52-
53-
db.executeRequest(request, connection);
5447
});
5548

5649
module.exports = router;

0 commit comments

Comments
 (0)