экспресс-пост make makenelnel заголовки - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь сделать ответ на почтовый запрос в экспресс, когда ответ простой текст:

var express = require('express');
var app = express();
var bodyParser = require("body-parser");
var multer = require('multer'); // v1.0.5
var httpFind = require('./mongoFind');

var upload = multer(); // for parsing multipart/form-data
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/url/myUrl',upload.array(),function(req, res){
       var request = req.body;

         switch(request.type){
            case 'add':                                 
                      res.send('Tudo bem!');                
             
                break;
				//...
				}
	});

Нет проблем в запросе в chrome и firefox. Но когда я делаю:

var express = require('express');
var app = express();
var bodyParser = require("body-parser");
var multer = require('multer'); // v1.0.5
var httpFind = require('./mongoFind');

var upload = multer(); 
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/url/myUrl',upload.array(),function(req, res){
       var request = req.body;

         switch(request.type){
            case 'add':
                httpFind.mgFind('elements').then(function(result){
                     res.setHeader('Content-Type', 'application/json;charset=UTF-8');
                      res.send(JSON.stringify(result));                     
                 }); 
                break;
				//...
				}
	});

chrome кричите на меня: показываются временные заголовки, и запрос отменяется.

1 Ответ

0 голосов
/ 05 июля 2018

Это решение работает. Я фиксирую 'res' перед обещанием в переменной и использую эту переменную вместо 'res' в обещании

var upload = multer(); 
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/url/myUrl',upload.array(),function(req, res){
       var request = req.body;
	   var sendit = res;//voila!

         switch(request.type){
            case 'add':
            httpFind.mgFind('hemers').then(function(result){
                    sendit.setHeader('Content-Type', 'application/json;charset=UTF-8');
                      sendit.json(result);                
                }).catch(err => sendit.send('Ops, something has gone wrong'));
                break;
				//...
				}
	});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...