0
非常に混乱していて、私が正しく考えているかどうかはわかりません。これが意味をなさせるために他に何が必要なのか教えてください...同じURLのAngularJSルートを使用するには、別のコントローラ機能が必要ですか?
私はマングースで2つの異なる機能を持っています。 1つはすべてのリストを索引付けし、他のインデックスは一意のユーザーリストを索引し、私のmongoose関数でフィルタリングされます。しかし、私のルートでは、$ httpのURLが同じなら、私のプロフィールページで一意の関数にどのようにヒットしますか?
//From server.js to controllers
app.get('/api/listings', controllers.listings.index);
//all listings shown on home page
function index (req, res) {
db.Listing.find({}, function(err, allListings) {
res.json(allListings);
});
}
//From server.js to controllers
app.get('/api/listings/', auth.ensureAuthenticated, controllers.profiles.indexUnique);
//unique function that I want to show on profile page only
function indexUnique(req, res) {
db.User.findById(req.user, function (err, user) {
if (err) {console.log(err);}
db.Listing.find({uid: req.user}, function(err, listings) {
if(err) { console.log('Error', err); }
res.json(listings);
});
})
}
どのように私は、URLのルートが同じであれば、私のユニークな機能を打つために私のhttpリクエストを調整するのですか?
// Angular http request in my home controller
$http({
method: 'GET',
url: '/api/listings'
}).then(function successCallback(response) {
vm.listings = response.data;
}, function errorCallback(response) {
console.log('Error getting data', response);
});
私はあなたのためのパラメータを使用することをお勧めします2つの別々の配列を保つことができるユニークな1すなわち /API /リスト/:listingId。次に、パラメータlistingIdを使用してリクエストを送信できます。これは安らかな方法であり、理解しやすい。なぜあなたは同じURLを使いたいのか理解できませんでした。 –
このライブラリを使用することもできます。これは意味のある方法でapisを消費するのに非常に便利です:https://github.com/mgonto/restangular –