簡體   English   中英

MongoDB mongojs節點

[英]MongoDB mongojs node

我正在嘗試學習節點,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"
}

當我說代碼不起作用時,是指當我使用Postman Rest Client Chrome插件進行測試時,得到以下信息

{
    "code": "InternalError",
    "message": "Argument passed in must be a single String of 12 bytes or a string of 24     hex characters"
}

當我嘗試使用GET

http://127.0.0.1:8080/msgs/George

如果我使用msgs.findOne使用類似的回調,它會按預期工作

 msgs.findOne({_id: mongojs.ObjectId(req.params.msgId)}, function (err, success) {...}

我認為應該有足夠的代碼來解釋我要做什么

任何指導將不勝感激。

與這個人在同一辦公室工作很有幫助。 他面臨的問題是他已經將2個不同的處理程序映射到一條路由。 兩者之間沒有區別,他的字符串George被作為findOne調用的一部分傳遞給mongojs.ObjectId構建器,並且正在生成的Argument passed in must be a single String of 12 bytes or a string of 24 hex charactersArgument passed in must be a single String of 12 bytes or a string of 24 hex characters錯誤消息Argument passed in must be a single String of 12 bytes or a string of 24 hex characters 更新路線以使其與眾不同可以解決該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM