In Node.js è fondamentale impostare correttamente le risposte alle richieste AJAX.
Definiamo uno schema del database con un tipo di dati specifico:
'use strict';
const mongoose = require('mongoose');
let TestSchema = mongoose.Schema;
let TestsSchema = new TestSchema({
created: Date
},{collection: 'test'});
module.exports = mongoose.model('Test', TestsSchema);
L'utente sceglie una data e la invia. Quindi avremo:
'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
mongoose.connect('mongodb://user:password@127.0.0.1/mydb');
const port = process.env.PORT || 8080;
const app = express();
const Test = require('Test');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/create', function(req, res) {
let submittedDate = Date.parse(req.body.date);
if(!isNaN(submittedDate)) {
let okDate = new Date(submittedDate);
let newTest = new Test({created: okDate});
newTest.save(function(error, test) {
if(!error) {
res.json(test);
} else {
res.status(500).json(error);
}
});
} else {
res.status(500).json({error: 'Invalid date'});
}
});
app.listen(port);
Avremo in risposta due codici HTTP, ossia 200 se non ci sono errori e 500 in caso di errori. Gli header sono fondamentali per permettere al client di identificare il tipo di risposta.