gpt4 book ai didi

node.js - findOne 与 mongoskin 和 Node

转载 作者:可可西里 更新时间:2023-11-01 10:29:59 24 4
gpt4 key购买 nike

我正在尝试(并且惨败)让 findOne 函数在 mongodb 上运行。我按照本教程 (http://cwbuecheler.com/web/tutorials/2014/restful-web-app-node-express-mongodb/) 进行了操作,它工作正常,但是当我试图让一个简单的 findOne 运行时,我遇到了这样的问题,有人可以帮我吗?我已经搜索了所有可能的教程,我知道你不能只使用 findone({_id: "idnumber"}),但我不知道我的有什么问题:

router.get('/userlist/:id', function(req, res) {
db = req.db;
ObjectID = require('mongoskin').ObjectID;
var userToGet = req.params.id;
db.collection('userlist').findOne({_id: db.ObjectID.createFromHexString(userToGet)}, function(err, result) {
console.log(result.username);
});
});

我收到错误“无法调用未定义的方法‘createFromHexString’”,我应该在哪里要求我的 mongoskin.objectid?

我的 findall 完美运行:

router.get('/userlist', function(req, res) {
db = req.db;
db.collection('userlist').find().toArray(function (err, items) {
res.json(items);
});
});

如有任何帮助,我们将不胜感激。

最佳答案

您的问题是,当您这样做时:

db.ObjectID.createFromHexString(userToGet)

,你应该这样做:

ObjectID.createFromHexString(userToGet)

因为您已经声明了 ObjectID 变量:

ObjectID = require('mongoskin').ObjectID;

提示:永远不要在没有var 语句的情况下声明一个变量(除非它真的有必要),因为如果你这样做,它就会在全局范围内。改为这样做:

var ObjectID = require('mongoskin').ObjectID;

关于node.js - findOne 与 mongoskin 和 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27517110/

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