我想學習節點,mongodb和mongojs,並有一個新手問題。MongoDB mongojs節點
我的路線是這樣的......
server.get({path: PATH + '/:author', version: '0.0.1'}, msg.findMsgsByAuthor);
我的JSON看起來像這樣...
{
"parentId": "1234",
"category": 1,
"author": "George",
"title": "Threaded Messages",
"body": "blah blah blah blah",
"likes": "5",
"dislikes": "10",
"inaccurate": "20"
}
我想要做的是在SQL簡單的東西 - select * from msgs where author = 'George'
如何使用mongo/mongojs來做到這一點?
我已經試過這樣的事情沒有成功...
msgs.find({author: req.params.author}, function (err, success) { ...}
回調代碼
exports.findMsgsByAuthor = function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
msgs.find({author: req.params.author}).sort({category: 1}, function (err, success) {
logit(err, success);
if (success) {
res.send(200, success);
return next();
}
return next(err);
})
};
這裏有一些聲明
var msgs = require('../setup').msgs;
var mongojs = require('../setup').mongojs;
var db = require('../setup').db;
而且setup.js是
var config = require('./config');
var connection_string = config.connectionString;
var mongojs = exports.mongojs = require('mongojs');
var db = exports.db = mongojs(connection_string, ['msg', 'user']);
var msgs = exports.msgs = db.collection("msgs");
var port = exports.port = config.port;
var ipAddress = exports.ipAddress = config.ipAddress;
最後,config.json
{
"connectionString":"127.0.0.1:27017/msg",
"ipAddress":"127.0.0.1",
"port": "8080"
}
當我說的代碼不工作,我的意思是,當我測試使用郵差REST客戶端瀏覽器插件中,我得到以下
{
"code": "InternalError",
"message": "Argument passed in must be a single String of 12 bytes or a string of 24 hex characters"
}
當我嘗試用
http://127.0.0.1:8080/msgs/George
一個GET如果我使用使用msgs.findOne類似的回調,它按預期工作
msgs.findOne({_id: mongojs.ObjectId(req.params.msgId)}, function (err, success) {...}
我認爲這應該是足夠的代碼來解釋什麼,我試圖做
任何指導,將不勝感激。
什麼是您的回撥代碼? – Vinz243
您可以編輯原始文章以包含您在評論中添加的代碼。你還應該在聲明'msgs'的地方發佈代碼。現在,這裏沒有足夠的真正幫助你。你有沒有仔細看過[MongoJS文檔](https://github.com/mafintosh/mongojs)?我確信有足夠的空間讓你開始。 – sgress454
是的,我查看了文檔,嘗試了一些東西 - 顯然不正確。我仍然在看着他們,試圖理解,但我想我會在這裏問。 – mortsahl