gpt4 book ai didi

angularjs - Angular $http GET 不将字符串传递到后端。不明确的?

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:22 25 4
gpt4 key购买 nike

我正在尝试通过 Mongoose 使用 .find() 根据其 item_id(与 MongoDB 分配的 _id 不同)获取特定项目。但是,没有任何内容传递到后端。我的路由文件中的 console.log(item) 返回一个空对象。

该项目看起来像这样:

var item = {
item_id : "String Identifier",
desc: "String Description about item"
}

我的 Angular Controller :

// itemCtrl.js
App.controller('itemCtrl', function($scope, $stateParams, $http) {
$scope.item= $stateParams.itemId;

$scope.getItem = function(){
$http.get('http://localhost:3000/items/:itemId', $scope.item)
.success(function(data){
console.log("Grabbing a single item with id " + data.item_id);
$scope.item= data;
}, function(err){
console.log(err);
});
};
});

我的 Express 后端路由:

// Item-Route.js
var express= require('express');
var mongoose = require('mongoose');
var router = express.Router();

var Item = mongoose.model('Item ');

router.get('/items/:itemId', function(req, res, next){
console.log(req.body); // returns {}
Item.find({trip_id: req.body.item_id}, function(err, item){
if(err){console.log(next(err))}
console.log(item); // returns []
res.json(item);
});
});

module.exports = router;

有人能发现我在这里做错了什么吗?非常感谢! :)

最佳答案

作为其 get 方法,您应该在 url 本身中传递参数,如下所示

$http.get('http://localhost:3000/items/'+ $scope.item)

然后更改服务器方法以从 URL 而不是正文读取参数。

router.get('/items/:itemId', function(req, res, next){
console.log(req.body); // returns {}
Item.find({trip_id: req.itemId}, function(err, item){
if(err){console.log(next(err))}
console.log(item); // returns []
res.json(item);
});
});

关于angularjs - Angular $http GET 不将字符串传递到后端。不明确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35542160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com