带有查询参数的节点js-app.get方法-内部服务器错误
Node js - app.get method with query params - internal server error
Controller.js
function _loadMoreItems() {
console.log("load more items");
var paginate = {
page : $scope.page,
perPage : $scope.perPage
};
ItemService.loadItems(paginate).then(function(result){
console.log("pagination done");
console.log("result");
console.log(result);
console.log("result length");
console.log(result.length);
for(var i=0;i<result.length;i++){
$scope.itemList.push(result[i]);
}
$scope.page = $scope.page + 1;
},function(err){
console.log("error");
console.log(err);
});
}
Service.js-ItemService
angular.module("myapp.item")
.factory("myapp.item.service", ['Restangular',
function(Restangular) {
var restAngular = Restangular.withConfig(function(Configurer) {
Configurer.setBaseUrl('/api/item');
});
return {
create: restAngular.all('')
.post,
loadItems: function(paginate) {
return restAngular.all('query').getList(paginate);
}
}
}
]);
Here I pass the paginate object as query param.
下面是我在nodejs中的路由
ApiRouter.get('/query',auth.requiresLogin, ApiCtrl.load);
下面是我的node-js方法来处理get
exports.load = function(req, res) {
console.log("req query");
console.log(req.query);
var myList=[];
return res.status(200)
.send(myList);
};
我得到以下错误。
http://localhost:3000/api/item/query?page=0&perPage=3 500 (Internal Server Error)
错误跟踪
CastError: Cast to ObjectId failed for value "query" at path "_id"
at ObjectId.cast (D:'Branching'8OctItemPagination'myapp.io'node_modules'mongoose'lib'schema'ob
jectid.js:116:13)
at ObjectId.castForQuery (D:'Branching'8OctItemPagination'myapp.io'node_modules'mongoose'lib's
chema'objectid.js:165:17)
at Query.cast (D:'Branching'8OctItemPagination'myapp.io'node_modules'mongoose'lib'query.js:233
6:32)
at Query.findOne (D:'Branching'8OctItemPagination'myapp.io'node_modules'mongoose'lib'query.js:
1118:10)
at Query.exec (D:'Branching'8OctItemPagination'myapp.io'node_modules'mongoose'node_modules'mqu
ery'lib'mquery.js:2213:16)
at Query.exec (D:'Branching'8OctItemPagination'myapp.io'node_modules'mongoose'lib'query.js:179
7:19)
at exports.itemid (D:'Branching'8OctItemPagination'myapp.io'app'item'server'controllers'api'item-api.js:36:10)
at paramCallback (D:'Branching'8OctItemPagination'myapp.io'node_modules'express'lib'router'ind
ex.js:385:7)
at param (D:'Branching'8OctItemPagination'myapp.io'node_modules'express'lib'router'index.js:36
5:5)
at Function.proto.process_params (D:'Branching'8OctItemPagination'myapp.io'node_modules'expres
s'lib'router'index.js:391:3)
info: GET /api/item/query?page=0&perPage=3 500 24.740 ms - 0
我得到内部服务器错误没有任何原因。如果我将路由器中的"getList"更改为"post(paginate)",则不会出现此错误。有些地方我错过了为getList写东西。请告诉我哪里错了。
谢谢。
看起来它在另一个控制器操作上匹配。url /api/item/query
在您的一条正在进行基于ID的查询的路由上匹配。我假设它是'/item/:id'
之类的。
该路由的处理程序正试图使用该路由参数来查询Mongo,可能使用findById
或类似的方法,并传递此时具有值"query"的id。
您的代码块正在数据库中查找id为"query"的项。基于常识,这听起来不对。
loadItems: function(paginate) {
return restAngular.all('query').**getList(paginate)**;
}
相关文章:
- 可以“;超级“;可以在子类的方法内部使用,在不直接引用的情况下调用相应的超类方法
- 如何从方法内部获取js方法名称
- 方法不在另一个方法内部调用
- 在模式方法内部,“this”在猫鼬 4.4.12 中为空 {}
- Angular promise回调不是在构造函数方法内部触发,而是在对象文本方法中触发
- 从对象方法内部的数组中运行console.log
- 从方法内部设置对象变量
- 在方法内部调用另一个方法 ReactJS
- 取消对象方法内部的动画帧不起作用
- GetVariable在方法内部工作
- HTTP GET位于客户端调用的api方法内部
- OOP,命名空间的顶级方法内部的私有函数
- Wicket:将JavaScript附加到非Ajax按钮(onSubmit()方法内部)
- 带有查询参数的节点js-app.get方法-内部服务器错误
- 数组排序方法内部的作用域
- 如何在JavaScript中访问继承方法内部的私有属性
- Cordova插件的执行方法内部的AsyncTask工作不正常
- 访问方法内部的变量's函数
- 如何从resolve方法内部更新作用域
- Javascript:从对象方法内部调用回调函数,产生意想不到的结果