gpt4 book ai didi

node.js - MongoDB mongojs Node

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:38 29 4
gpt4 key购买 nike

我正在尝试学习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 whereauthor = '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 构建器,并生成传入的参数必须是单个 12 字节字符串或 24 个十六进制字符的字符串错误消息。更新路线以使它们不同解决了问题。

关于node.js - MongoDB mongojs Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23327852/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com