Skip to content

Instantly share code, notes, and snippets.

@guumaster
Created November 5, 2015 14:12
Show Gist options
  • Save guumaster/17d8b127aee7ec80ced8 to your computer and use it in GitHub Desktop.
Save guumaster/17d8b127aee7ec80ced8 to your computer and use it in GitHub Desktop.
clase03.md

Exercise 1

create a server to:

  • output the diagonal sum o a given array by POST
  • use a middleware to validate a square matrix input
@IGZdiegoherrera
Copy link

"use strict";

let express = require("express");
let bodyParser = require("body-parser");
let app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

app.set("ip", process.env.IP || "0.0.0.0");
app.set("port", process.env.PORT || 3000);

app.post("/", function(req, res) {

    var arr = JSON.parse(req.body.matrix);
    var sum = arr.reduce(function(prev, curr, index) { return prev + curr[index]; }, 0);
    res.send(sum.toString());
});

var server = app.listen(3000, function() {
    var host = server.address().address;
    var port = server.address().port;
    console.log("Example app listening ar http://%s:%s", host, port)
});

@IGZOscarArce
Copy link

// 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;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment