2017-09-13 8 views
0

app.route( '/ clientes')
.get(verificaAutenticacao、controller.listaClientes、controller.listaRegionais);別のリクエストをブロックするリクエストを取得する

これを行うと、1つのコントローラーだけが何が間違っていますか?

+2

あなたは何をしようとしているのかについてより多くのコンテキストを与えることができます –

+0

まあ、私はNodeJS、ExpressJS、MongoDBと角度を使用しています。 –

+0

そして私は2つのミドルウェアを受け取る1つのルートをしようとしていますが、私はそれらを呼び出すと1つだけが呼び出されます。 –

答えて

0

私はこの問題を解決する...

私はExpress、Angular、mongoで新しいので、探して検索した後、私は答えを見つけました。

route.getを作成してミドルウェアを渡すと、その機能ミドルウェアを参照する新しいパスを作成する必要があります。

0

何を話していることはnodejs急行で、あなたは、次の構文を使用する必要があり、経路に複数のミドルウェアを追加しようとしている場合:

app.get('/example/b', function (req, res, next) { 
    console.log('the response will be sent by the next function ...') 
    next() 
}, function (req, res) { 
    res.send('Hello from B!') 
}) 
+0

私はこれを試みましたが、エラーが発生しました:UnhandledPromiseRejectionWarning: id:1):エラー:送信後にヘッダーを設定できません。 –

+0

controller.listaClientes = function(req、res、next) { var filtro = {}; Cliente.find(filtro) .exec() .then( 関数(listagem){ res.json(listagem); }、 関数(ERRO){ にconsole.log(ERRO); RES .status(500).json(erro); } ); 次() }; –

+0

だから、第2のコールバックを持っているのではなく、最後に.catchを実行するのではなく、.then(function(){...}))catch(function(){..}) jsonは一度だけ。これを行うと、resは確定済みとマークされ、ヘッダーを再度設定することはできません。私はなぜあなたが非常に多くのミドルウェアを持っているのか分かりませんが、一度だけ回答を完了していることを確認してください。詳細については、https://stackoverflow.com/questions/7042340/error-cant-set-headers-after-the-are-sent-to-the-client –

関連する問題