Пораженный проблемой маршрутизации в expressjs и проекте AngularJs.Parsing url params в expressjs - angularjs application
Это не одностраничное приложение, и я не использую никакие механизмы просмотра, такие как нефрит.
Мы просто используем простой HTML.
Я работаю над функциями сброса пароля, где пользователь может сбросить пароль, нажав ссылку, предоставленную по электронной почте. Поэтому я предполагаю, что не будет никакого события изменения маршрута в контексте Angular (Пожалуйста, поправьте меня, если я ошибаюсь).
И мои экспресс-конфигурации заключаются в следующем.
routes = require('./routes/index');
app.configure(function() {
app.use(express.static(__dirname + '/app'));
app.use('/css', express.static(__dirname + '/app/css'));
app.set('views', __dirname + '/app');
app.set("view options", { layout: false });
app.engine('.html', require('ejs').__express);
app.set('view engine', 'html');
app.use(express.favicon());
//app.use(require('connect').bodyParser());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
});
// Routes
app.get('/', routes.index);
app.get('/resetpassword.html/:resetcode', function (req, res) {
console.log("reset code: " + req.params.resetcode);
res.render('resetpassword.html/' + req.params.resetcode);
});
app.get('/api', function (req, res) {
res.send('Ecomm API is running');
});
// JSON API
app.post('/registeruser', usersApi.registerUser);
app.post('/api/login', usersApi.logIn);
app.post('/api/addgame', gamesApi.addGame);
app.get('*', routes.index);
// Start server
app.listen(2221, function() {
console.log("Express server listening on port %d in %s mode", 2221, app.settings.env);
});
и index.js
exports.index = function(req, res){
res.render('home.html');
}; // Always rending index.html which needs to be fixed.
И app.js из AnghularJs следующим
app.config(function ($routeProvider) {
$routeProvider
.when('/', { templateUrl: 'home.html' })
.when('/resetpassword.html/:resetcode', { templateUrl: '/resetpassword.html', controller: 'ResetPasswordCtrl' })
.otherwise({ redirectTo: '/' });
});
я получаю 500 внутренняя ошибка или просмотреть не найдена ошибка.
Любые предложения, пожалуйста.
благодарит за ваш ответ. Вместо доступа к параметру из представления мы не можем его прочитать с контроллера? – Naresh
Возможно, но это не зависит от рендеринга шаблона. Если url is /resetpassword.html/1234, то я думаю, что угловой контроллер сможет его прочитать, но вам не нужно передавать его на серверную функцию node.js 'render'. ИМО вы не должны выполнять маршрутизацию как на стороне сервера, так и на стороне клиента, поскольку вы выполняете маршрутизацию на стороне сервера, маршрутизация на угловой стороне кажется излишней. Btw, PLS отметить ответ, как принято, если это решает вашу проблему;) – jtblin
еще раз спасибо. Но после вышеупомянутых изменений я не получаю никаких ошибок. Но я не вижу URL. Я могу просто увидеть хозяина. Есть идеи? – Naresh