[英]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 characters
的Argument 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.