Nodo expreso de cors y rutas.

Estoy usando CORS https://www.npmjs.com/package/cors para permitir la lista de whitedomain .

  var whitelist = ['http://example1.com', 'http://example2.com']; var corsOptions = { origin: function(origin, callback){ var originIsWhitelisted = whitelist.indexOf(origin) !== -1; callback(null, originIsWhitelisted); } }; app.post('/products/:id', cors(corsOptions), function (req, res, next) { console.log(0); res.json({ msg: 'This is CORS-enabled for a whitelisted domain.' }); }); 

En el caso de que non whitedomain el servidor devuelve No 'Access-Control-Allow-Origin' cual está bien, pero al mismo tiempo puedo ver en la depuración que las líneas res.json({ msg: 'This is CORS-enabled for a whitelisted domain.' }); y console.log(0); todavía se ejecuta – console.log(0); imprimí 0 en la consola en el lado del servidor, que es algo que no haría en ese caso.

Así que digamos si está retorciéndose a la base de datos:

 app.post('/products/:id', cors(corsOptions), function (req, res, next) { writeToDatabase(); res.json({ msg: 'This is CORS-enabled for a whitelisted domain.' }); }); 

De esta manera writeToDatabase(); siempre será ejecutado. Pero quiero evitar eso porque no necesito escribir nada en la base de datos en caso de non whitelisted dominio que no esté en la non whitelisted .

¿Alguna idea?

Mi idea es usar si para filtrar la solicitud dentro de app.post, por ejemplo,

 app.post('/products/:id', cors(corsOptions), function (req, res, next) { if(req.header[origin]===whitelisted){ writeToDatabase(); res.json({ msg: 'This is CORS-enabled for a whitelisted domain.' }); } });