に最後にを変更しました res.redirect('...')
データベース内の既存のオブジェクトではないURLパスを変更すると何も起こりません。そして私の質問は、角度を使用して404 error
を処理するこの正しい方法ですか、またはerroroミドルウェアを使用してサーバ側で404 error
を処理する必要がありますか?データベースにobject_idが見つからない場合にURLパスをリダイレクト
api.js
router.get('/seeMore/:id', function(req, res) {
var seeMore = req.params.id;
if(objectid.isValid(seeMore)){
Product.findOne({_id:req.params.id}, function(err, product) {
if(err) throw err
if(!product) {
res.json({ success: false, message: 'Product no found' });
} else {
res.json({ success: true, product: product });
}
})
} else {
res.json({ success:false })
}
});
routes.js
.when('/register', {
templateUrl: 'app/views/pages/users/register.html',
controller: 'regCtrl',
controllerAs: 'register',
authenticated: false
})
.when('/home', {
templateUrl: 'app/views/pages/users/home.html',
controller: 'mainCtrl',
controllerAs: 'main',
authenticated: true,
})
.when('/seeMore/:id', {
templateUrl: 'app/views/pages/users/nawigacja/zobaczwiecej.html',
controller: 'seeMoreCtrl',
controllerAs: 'seeMore',
authenticated: [true, false],
})
controller.js
.controller('seeMoreCtrl', function($scope,$routeParams,User, $window){
var app = this;
if(data.data.success){
User.readMoreCourse($routeParams.id).then(function(data){
app.currentProduct = data.data.product._id;
console.log(data.data.product)
});
} else {
$window.location.assign('/register')
}
を})。 controller.jsで
サービス
.factory('User', function($http){
userFactory = {}
userFactory.readMoreCourse = function(id) {
return $http.get('/api/zobaczwiecej/' + id)
}
return userFactory
})
あなたが見たいフロントエンドコードを追加してください。もっと –
@ManishKumawat私は質問を編集しました –