所以,我使用的是mean.io,由于某种原因,我的routes.js从未触及我的索引。所有'方法,或者' exports.all'功能,即使我需要服务器端控制器的功能。此外,我的路由使用angular-ui-router完成。有人知道如何从MEAN.IO中的路由调用后端方法吗?我继续使用:
'use strict';
module.exports = function(System, app, auth, database) {
// Home route
var index = require('../controllers/index');
app.route('/test').get(index.all);
app.route('/')
.get(index.render);
};
我想点击' index.all'但即使我导航到/测试,它仍然会得到 index.render。有人知道为什么吗?
这是控制器文件:
'use strict';
var mean = require('meanio');
var mongoose = require('mongoose');
var Composition = mongoose.model('Composition');
exports.render = function(req, res) {
console.log(req.user);
var modules = [];
// Preparing angular modules list with dependencies
for (var name in mean.modules) {
modules.push({
name: name,
module: 'mean.' + name,
angularDependencies: mean.modules[name].angularDependencies
});
}
function isAdmin() {
return req.user && req.user.roles.indexOf('admin') !== -1;
}
// Send some basic starting info to the view
res.render('index', {
user: req.user ? {
name: req.user.name,
_id: req.user._id,
username: req.user.username,
roles: req.user.roles
} : {},
modules: modules,
isAdmin: isAdmin,
adminEnabled: isAdmin() && mean.moduleEnabled('mean-admin')
});
};
exports.all = function(req, res) {
console.log(req.user);
Composition.find({user: req.user}, 'title description').sort('-created').populate('user', 'name username').exec(function(err, compositions) {
if (err) {
return res.jsonp(500, {
error: 'Cannot list the compositions'
});
}
res.jsonp(compositions);
});
};
这是前端还是后端问题?感谢任何可能有用的建议。
答案 0 :(得分:1)
您正在导航。所以你在浏览器网址中点击链接了吗?然后,您应该尝试localhost:3000/test
而不是l ocalhost:3000/#!/test
。
localhost:3000:/#!/<something>
形式的网址是有角度的路线。查找角度路由和视图。使用角度视图比服务器端渲染更好。为test
执行角度路由并添加与其对应的视图。使用常规$http.get
调用获取视图中的动态数据。
选中此tutorial进行路由并以角度
添加视图