create a server to:
- output the diagonal sum o a given array by POST
- use a middleware to validate a square matrix input
// server.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
//ROUTERS
app.use('/sum', require('./sum'));
app.set('ip', process.env.IP || '0.0.0.0');
app.set('port', process.env.PORT || 3000);
app.listen(app.get('port'), app.get('ip'), function(){
console.log( 'Express started ...');
});
// sum.js
const express = require('express');
const router = express.Router();
/* ROUTES */
router.post('/', validateSquareMatrix, sumSquareMatrix);
function validateSquareMatrix(req, res, next) {
req.body.matrix.forEach(function(row) {
if(row.length !== req.body.matrix.length)
return next(new Error("Matrix malformed"));
});
next();
}
function sumSquareMatrix(req, res) {
var sum = 0;
for(var i=0, I=req.body.matrix.length; i<I; i++)
sum += req.body.matrix[i][i];
res.json(sum);
}
module.exports = router;