【问题标题】:Node js : receive data from clientNode js:从客户端接收数据
【发布时间】:2012-11-20 05:23:47
【问题描述】:

我有问题。将数据从客户端发送到服务器,再发送到数据库。但是服务器看不到来自客户端的数据,如果你这样做:

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;

请帮帮我:)

【问题讨论】:

    标签: javascript ajax node.js send


    【解决方案1】:

    不确定你想做什么,但我会尽力给你建议。

    您用于解析查询参数的代码看起来不错。对http://localhost:8080/?name=foo 的 GET 请求 将导致参数具有值,属性 'name' = 'foo'。

    如果您尝试插入具有“名称”属性的文档,例如{name: 'foo', property2: 'param2', etc...} 到您的 mongoDB 集合中,您需要在集合中实现 mongoDB 插入,而不是查找。

    如果您想进行查找,但通过 {name: 'foo'} 进行查询,则需要将其作为参数传递给 find()。

    我建议您查看 mongoDB 驱动程序文档以了解有关查找和插入的更多信息:http://mongodb.github.com/node-mongodb-native/api-articles/nodekoarticle1.html


    如果您只需要返回模拟数据,您也可以在命令行中打开 mongo shell,$mongo,使用 TestApp 数据库 use TestApp,然后执行 db.ObjectCollection.insert({...your document here...}) 以使用数据填充数据库,因此您的服务器的查询可以返回一些文档。 MongoShell 命令也记录在 MongoDB 网站上。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 2019-01-02
      • 2012-04-14
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      相关资源
      最近更新 更多