2016-12-29 6 views
-1

これは私の初めての質問です。これは基本的にいくつかの回答を見つける最後の手段です。 Im noobとjavascriptで初心者ので、私と簡単な用語を使用してください。nodejsでの照会方法は?

問題があります。私は照会する方法を知らない。 - 私はすべてのクエリを1つのスクリプトに入れたり、別のスクリプトに分割する必要があります。 - 今、私はserver.jsを持っており、そこにすべてのコードを入れています。クエリを含むだから私はどのようにそれらの1つを実行するのですか? - そして私には4のような別の番号を問い合わせるようなものがある場合もあります。スクリプトを手動で '110'から '4'に変更する必要がありますか、どこかに入力するだけですか?

いくつかの例は以下のとおりです。110

db.collection.find({length: "110"}, function(err, collection) { 
    if(err || !collection) console.log("No collections with 110 in length"); 
    else collection.forEach(function(length) { 
    console.log(length); 
    }); 
}); 

//の //長さは、私だけでそれらのいずれかの実行するために照会するにはどうすればよい長さ110のレコードと、長さ340

var length = ['110', '340'] 
length = length.join('|'); 
var re = new RegExp(length, 'i') 
db.collection.find({length:{$regex: re}}, function(err, collection) { 
    if(err || !collection) console.log("User not found"); 
    else collection.forEach (function(length){ 
    console.log(length); 
}); 
}); 

を示しmongodb。助けてくれる人たちを助けてください

+0

私はあなたの質問をよく理解していません。モデル、コントローラ、ルート、コンフィグなどのクエリや一般的なnode.jsプロジェクトのディレクトリ構造について質問していますか?クエリについての –

+0

そこにあるように、ユーザーがレコードを作成するかどうかを入力する方法があります。例えば、レコード番号4を表示するには、ターミナルでキーを打つか、手動でjavascriptに戻ってlength = "110"からlength = "4"に編集する必要があります。 – Noobstudent

答えて

0

あなたは既にnode.jsがサーバーの作成に使用されていることを知っています。したがって、データベースを照会するには2つの方法があります。あなたはノードに新しいしているので、私は方法の両方をリストアップするつもりです:

1.A HTTP GET
(標準的な方法)のデータを照会するためにあなたが単純なHTTPサーバーを作成し、ルートを設定することができます enter image description here

2.Using:

var express = require('express'); 
var http = require('http'); 
var app = express(); 
var bodyParser = require('body-parser'); 

// Db settings 
var mongodb = require('mongodb'); 
var MongoClient = mongodb.MongoClient; 

var url = 'mongodb://localhost:27017/my_database_name'; 

function getConnection(url, callback) { 
    MongoClient.connect(url, function(dbErr, dbRes) { 
    if(dbErr) { 
     return callback(err, null); 
    } 
    callback(null, dbRes); 
    }); 
} 

// Configure app to use bodyparser 
app.use(bodyParser.urlencoded({extended: true})); 
app.use(bodyParser.json()); 
var port = process.env.PORT || 7013; 
app.set('port', port); 

app.use(function(req, res, next) { 
    console.log(req.ip+ ":"+port + req.url + " "+req.method); 
    next(); 
}); 

app.get('/getCityData', function(req, res, next) { 
    var cityName = req.query.city; 

    getConnection(url, function(conErr, db) { 
    if(conErr) { 
     return res.send("ERROR IN GETTING connection"); 
    } 

    var cityCollection = db.collection('cities'); 
    cityCollection.find({"city":cityName}).toArray(function(err, result) { 
     if(err) return res.send("error in querying data"); 

     db.close(); 
     res.send(result); 
    }); 
    }); 
}); 

var httpServer = http.createServer(app).listen(port, function() { 
    console.log("Express server listening on port "+app.get('port')); 
}); 

あなたはこのようにカールや郵便配達を使用してサーバーを照会することができます:あなたが理解できるように、データの種類を取得しますが、小さなファイルを書かwant.I'veコマンドl伊根引数:
また、照会するパラメータを渡すことで、コマンドライン引数を使用して、それを簡単に行うことができますが、それはあまり柔軟です:enter image description here

:このようなコマンドライン引数は、ファイルの実行中に

var mongodb = require('mongodb'); 
var MongoClient = mongodb.MongoClient; 

var url = 'mongodb://localhost:27017/my_database_name'; 

function getConnection(url, callback) { 
    MongoClient.connect(url, function(dbErr, dbRes) { 
    if(dbErr) { 
     return callback(err, null); 
    } 
    callback(null, dbRes); 
    }); 
} 

var cityName = process.argv[2]; // that's the argument you'd receive 
getConnection(url, function(conErr, db) { 
    if(conErr) { 
    return res.send("ERROR IN GETTING connection"); 
    } 

    var cityCollection = db.collection('cities'); 
    cityCollection.find({"city":cityName}).toArray(function(err, result) { 
    if(err) return res.send("error in querying data"); 

    db.close(); 
    console.log(result); 
    }); 
}); 

パスを

私は助けてくれるといいですか

関連する問題