평균 스택을 사용하여 애플리케이션을 작성하는 데 익숙하며 mongodb 컬렉션에 저장된 프로그램 데이터를 쿼리하는 웹 사이트를 구축하려고합니다.서버 sider (express/node.js)의 클라이언트 측 (html/컨트롤러) 데이터 검색
myApp.controller('AppCtrl', ['$scope', '$http', function($scope, $http) {
$scope.mongoQuery = function(){
console.log($scope.keywords);
$http.get('/search_results', $scope.keywords);
}
}]);
:
<form class="navbar-form navbar-right" role="search">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term" ng-model="keywords">
<div class="input-group-btn">
<button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search" ng-click="mongoQuery()"></i></button>
</div>
</div>
</form>
내 controller.js 다음 파일과 같은 검색 한 키워드와 일치하는 모든 MongoDB의 컬렉션을 얻기 위해 서버로 호출을 시작 : 내 HTML 인덱스 파일 내에서 나는 검색 창을 구현 한
그때 (중 자신의 태그 필드를 통해, 또는 카테고리를 통해 필드) 키워드와 일치하는 모든 레코드를 검색하려고 같은 내 server.js 파일의 검색 창에 입력 :
var express = require('express');
var app = express();
var mongojs = require('mongojs');
var db = mongojs('mydb', ['bbctest']);
var bodyParser = require('body-parser');
app.use(express.static(__dirname + "/public"));
app.use(bodyParser.json());
// THIS FUNCTION DOES NOT WORK
app.get('/search_results', function(req, res){
//console.log(req.body);
console.log("I recieved a GET request for searching keywords")
var searchKeywords = req.body.keywords;
console.log(searchKeywords);
db.bbctest.find({ $or: [ { categories:searchKeywords} , {tags:searchKeywords } ] }, { complete_title: 1 }).forEach(function(err, docs) {
console.log(docs);
res.json(docs);
});
});
app.listen(3000);
console.log("Server running on port 3000");
컨트롤러에서 $ scope.keywords 변수에 액세스하려고하지만 어떻게해야할지 모릅니다. 위에서 볼 수 있듯이 req.body.keywords을 사용해 보았지만 검색 창을 사용하면 빈 객체가 반환됩니다.
나는 어떤 도움을 주셔서 감사합니다! 또한 거기에 유용한 리소스가 있다면 당신이 그 위대한 것 같은 응용 프로그램 (검색 엔진)을 구축하는 데 도움이 될 것이 좋습니다 것이 좋습니다!.
대단히 감사합니다. GET 요청과
좋습니다. controller.js에서 "keywords"변수에 액세스하는 것은 어떻습니까? 그것은 여전히 빈 var로오고 있습니다. – sums22
예, 감사했습니다. 내 mongodb 쿼리는 여전히 작동하지 않습니다. 어떤 생각을 잘못하고 있습니까? – sums22
키워드와 같은 태그 및 카테고리를 가진 키워드 나 결과를 정확하게 일치 시키려면? @ sums22 –