0

私は問題があります。クライアントからサーバー、データベースにデータを送信します。ただし、これを行うと、サーバーはクライアントからのデータを認識しません。

var http = require("http");
var url = require("url");
var Db = require ("mongodb").Db;
var Server = require("mongodb").Server;
function start () {
'use strict';
function onRequest (request, response) {
    'use strict';
    var db = new Db ("TestApp", new Server ("127.0.0.1", 27017, {}));
    response.writeHead(200, {"Content-Type": "application/json", "Access-Control-Allow-Origin": "*"});
    db.open (function (err, db) {
        db.collection ('ObjectCollection', function (err, collection) {
                var url_string = request.url;
                var params = url.parse(url_string, true).query;
                console.log(params["name"]);
            collection.find().toArray (function (err, docs) {
                console.log (docs);
                response.write(JSON.stringify(docs));

                response.end();
            });
        });
    });
}

http.createServer(onRequest).listen(8080);
console.log ('Server has started...')
}
exports.start = start;

これが彼の見方ですが、データベースにデータを追加できないためです

var http = require("http");
var url = require("url");
var Db = require ("mongodb").Db;
var Server = require("mongodb").Server;
function start () {
'use strict';
function onRequest (request, response) {
    'use strict';
    var db = new Db ("TestApp", new Server ("127.0.0.1", 27017, {}));
    response.writeHead(200, {"Content-Type": "application/json", "Access-Control-Allow-Origin": "*"});
    db.open (function (err, db) {
        db.collection ('ObjectCollection', function (err, collection) {
            collection.find().toArray (function (err, docs) {
                console.log (docs);
                response.write(JSON.stringify(docs));
                var url_string = request.url;
                var params = url.parse(url_string, true).query;
                console.log(params["name"]);
                response.end();
            });
        });
    });
}

http.createServer(onRequest).listen(8080);
console.log ('Server has started...')
}
exports.start = start;

お願い助けて :)

4

1 に答える 1

2

何をしようとしているのかわかりませんが、アドバイスできるように最善を尽くします。

クエリ パラメーターを解析するためのコードは正常に見えます。への GET リクエストhttp://localhost:8080/?name=foo は、プロパティ 'name' = 'foo' の値を持つ params になります。

たとえば、プロパティ「名前」を持つドキュメントを{name: 'foo', property2: 'param2', etc...}mongoDB コレクションに挿入しようとしている場合は、検索ではなく、コレクションに mongoDB 挿入を実装する必要があります。

検索を実行したいが、{name: 'foo'} でクエリを実行する場合は、それをパラメーターとして find() に渡す必要があります。

検索と挿入の詳細については、mongoDB ドライバーのドキュメントを参照することをお勧めします: http://mongodb.github.com/node-mongodb-native/api-articles/nodekoarticle1.html


モック データだけを返す必要がある場合は、代わりにコマンド ライン $ で mongo シェルを開きmongo、TestApp データベースを使用してuse TestAppdb.ObjectCollection.insert({...your document here...})データベースにデータを入力することもできます。これにより、サーバーのクエリがいくつかのドキュメントを返すことができます。MongoShell コマンドについては、MongoDB Web サイトにも記載されています。

それが役に立てば幸い。

于 2012-12-02T19:45:43.877 に答える