我有问题。将数据从客户端发送到服务器,发送到数据库。但是,如果您执行此操作,服务器将无法从客户端看到数据:
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;
请帮帮我:)
答案 0 :(得分:2)
不确定你要做什么,但我会尽力给你建议。
解析查询参数的代码看起来很好。对http://localhost:8080/?name=foo
的GET请求
将导致params具有值,属性'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...})
使用数据填充数据库,因此服务器的查询可以返回一些文档。 Mongohell命令也记录在MongoDB网站上。
希望它有所帮助。