【发布时间】:2017-08-20 16:33:39
【问题描述】:
我是 MeteorJs 的新手,我想调用一个只能在服务器上运行的查询。所以我在服务器端代码中编写方法,但它会抛出这样的错误:
调用方法“getCenters”时出错:内部服务器错误 [500]
我想从服务器端收集数据,因为 $nearSphere 不能在客户端工作。下面,我添加了我到目前为止所做的代码。我在不同的目录中有两个文件。
客户端代码,在projectName/client/templates/pages/search.js:
Template.searchlist.onRendered(function(){
this.searchedString = Router.current().params.name;
Meteor.call('getCenters',this.searchedString);
});
服务器端代码,在myproject/server/main.js:
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
Meteor.methods({
'getCenters': function(searchedParams) {
searchedParams = searchedParams.split('-');
var lat = searchedParams.pop();
var lng = searchedParams.pop(1);
console.log(Centers.find({
coordinates: {
$nearSphere: {
$geometry: {
type: "Point",
coordinates: [lng, lat]
},
$maxDistance: 10000
}
}
}));
}
});
});
【问题讨论】:
-
这个问题似乎是这个问题的结果:stackoverflow.com/questions/45751007/…。您最好将其答案标记为已接受。
-
这也是我的问题,但没有解决这个问题。因为我想使用客户端路由器方法
-
您必须在此处显示错误日志。只需进入您的 shell 或服务器,然后在此处添加错误跟踪
标签: meteor