Pocas sugerencias
Con respecto a la llamada ajax en index.html
- Si su
index.html
es atendida por el mismo servidor, entonces por favor no use una llamada entre dominios. Laurl
propiedad en$.ajax
podría ser una URL relativa como/start
. - También puedes pensar en no usar
jsonp
solicitud.
la llamada podría ser como
$.ajax({
dataType: 'json',
data: $('#formID').serialize(),
type: 'POST',
url: "./start",
success: handleButtonResponse,
});
¿Cómo/Dónde se conecta el JSON a/desde MongoDB?
En su llamada ajax, está solicitando ./start
, por lo que se debe realizar la misma ruta en su servidor express. Me gusta
app.get('/start', function (req, res) {
db.collection('collectionName').insert({req.data}, function (err, doc) {
//rest of code
});
});
¿Express requiere un motor de plantillas, como Consolidate? Si es así, ¿cómo/dónde encaja eso?
Tiene muchas opciones para plantillas como jade, ejs, hbs, etc. Si usa jade o cualquiera de ellos, su código de representación html en las rutas rápidas se simplificará.
sin un motor de plantillas
response.writeHead(200, {"Content-Type:": "application/json"});
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.write( "_wrapper('" );
response.write( JSON.stringify(submittedPost) );
response.write( "')");
response.end();
con un motor de plantillas como jade (ahora pug)
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.json(submittedPost);
también con los motores de plantillas puede representar plantillas con variables del lado del servidor y puede acceder a ellas dentro de sus plantillas como
app.get('/mypage', function (req, res) {
res.render('mytemplate_page',{template_variable:some_variable});
});
y puedes usar template_variable
dentro de la plantilla para recorrer o mostrar.