我已经解决了这个问题,但我仍然不确定我这样做是否正确。如果有任何替代方法,我可以一次性发送文件和数据,那将更有用。请提供相同的输入。
我在前端使用Angular js,在后端使用node.js上的Express js。
我想做什么?
我正在尝试实施类似facebook的工具,为您提供独特的个人资料名称或说出用户名。
因此 - 用户可以说类型为domain.com/hisprofileid
现在,我想要做的是在服务器端进行搜索,这将根据搜索结果向前端发送具有精确数据的响应。
然后前端将加载数据。
到目前为止我做了什么?
老实说,我无法正确地思考它,我所建立的系统不起作用。
这就是我所做的。服务器端的localhost:portnumber
根调用发送一个名为index.html的文件。这只是索引文件而已。
现在在服务器端,我已经设置了处理localhost:portnumber/anything
的路由,该路由将profilepage.html文件作为响应发送。
现在使用$ locationprovider的profilepage.html控制器的控制器有这个代码来单独调用服务器端(请参考下面的代码)[我坚信这是微不足道的,这就是我为什么的原因丢失]
请查看下面给出的一些代码。
前端部分
$routeProvider
.when('/', {
templateUrl: 'index12.html',
controller: 'someCtrl'
})
.when('/:merchantid', {
templateUrl: 'index12.html',
controller:'userCtrl'
})
app.controller('userCtrl', function ($scope, Upload, $timeout, $http) {
console.log("Here");
var merchantid = "suresh";
$http.get('/merchant/' + merchantid ).success(function(response)
{
console.log("response");
console.log(response);
});
});
服务器端
app.get('/', function (req, res) {
console.log("Global");
res.sendFile(__dirname + '/public/index13.html');
});
app.get('/:merchantid', function (req, res) {
console.log("we are here");
console.log(req.params);
res.sendFile(__dirname + '/public/index12.html');
});
app.get('/merchant/:merchantid', function (req, res) {
console.log("Detail here");
console.log(req.params);
res.json({message: 'here'});
});
请提出建议。
答案 0 :(得分:0)
这是我为解决问题所做的工作。
localhost:portnumber/anything
- 当调用此项时,我直接调用服务器并检查该特定人员是否实际已注册,然后根据该结果打开相应的页面。
app.get('/:profileid', route_profileid.fetchprofile);
然后处理与之关联的数据的函数。
modename.findOne({
'profileid': uniqueid
}, function (err, docs) {
if (err) {
console.log("Error in finding data" + err);
} else {
if (docs) {
console.log(process.cwd());
res.sendFile(process.cwd() + '/public/profile.html');
}
if (!docs) {
console.log("Nothing Found related to that query");
res.sendFile(process.cwd() + '/public/error.html');
}
}
现在,配置文件页面加载了特定用途的配置文件数据,然后这里是角度路由器的代码。 [此角度代码附加到将显示的配置文件页面。]
$rootScope.$on('$routeChangeSuccess', function () {
console.log($routeParams.profileid);
var profileid = $routeParams.profileid;
$http.get('/profile/' + profileid).success(function (response) {
console.log(response);
$scope.profile = response;
});
});
注意:需要加入$RouteParams
,$route
,$routeScope
和ngRoute模块以促进活动。
此处针对该用户的实际数据发出新请求。
app.get('/profileid/:profileid', route_profiledata.profiledata);
然后在那个特定的函数数据从db中获取并且适当的响应被发送回用户。