MEANスタックを使用してアプリケーションを構築するのが初めてで、mongodbコレクションに格納されたプログラムデータを照会するWebサイトを構築しようとしています。サーバーsider(express/node.js)のクライアント側(html/controller)データを取得する
<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のコレクションを取得するには、サーバーへのコールを開始:
myApp.controller('AppCtrl', ['$scope', '$http', function($scope, $http) {
$scope.mongoQuery = function(){
console.log($scope.keywords);
$http.get('/search_results', $scope.keywords);
}
}]);
私は検索バーを実装している私の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 –