API と通信するためにリクエスト付きエクスプレスを使用しています。いくつかのコントローラ ファイルはエクスポートを使用するため、ルート ファイルをきれいに保つことができます。
module.exports = function(app){
var moment = require('moment'),
request = require('request'),
auth = require('../auth/auth.js')(app),
apiUrl = process.env.API_URL;
return {
addProduct: function addProduct(req,res) ...
request.defaults は auth ファイルに設定され、login はそこで関数を呼び出して、アプリ全体でユーザーを認証するためのヘッダーを設定します。
auth.setToken = function(token, type, access) {
auth.request = request.defaults({
headers: {
'x-access-token': token,
'x-access-type': type,
'x-access-level': access,
}
});
};
そして、いくつかの mod で request を使用します。
auth.request.get(apiPath, function(err, apiRes) {
res.render(renderView, {
items: items,
});
});
すべてが「ユーザー」ファイルからうまく機能しますが、追加したばかりの他のコントローラーファイルがいくつかあり、何らかの理由でそれらのファイルのすべての関数でヘッダーがリセットされます (認証が失われます)。「ユーザー」ファイルを文字通りコピーして他のファイルに貼り付けても同じ問題が発生するか、他のファイルに必要なものを「ユーザー」ファイルに戻すと、再び正常に動作します。何が間違っていたのかわかりませんが、ファイルが1つしかない場合は非常に面倒になります...何かアイデアはありますか?