gpt4 book ai didi

javascript - 使用带有 Express 的 NodeJS 从 MongoDB 检索数据

转载 作者:IT老高 更新时间:2023-10-28 12:30:47 26 4
gpt4 key购买 nike

好的,所以在过去的几天里,我开始搞乱 Node(因为我认为我应该学习一些真正有用的东西,并且可能会给我找到一份工作)。现在,我知道如何提供页面、基本路由等。好的。但我想学习如何从数据库中查询信息。

现在,我正在尝试构建一个用作网络漫画网站的应用。因此,理论上,当我输入 url http://localhost:3000/comic/<comicid> 时,应用程序应该查询数据库。

我的 app.js 文件中有以下代码:

router.get('/', function(req, res) {  
var name = getName();
console.log(name); // this prints "undefined"

res.render('index', {
title: name,
year: date.getFullYear()
});
});

function getName(){
db.test.find({name: "Renato"}, function(err, objs){
var returnable_name;
if (objs.length == 1)
{
returnable_name = objs[0].name;
console.log(returnable_name); // this prints "Renato", as it should
return returnable_name;
}
});
}

通过此设置,我得到 console.log(getName())在控制台中输出“未定义”,但我不知道 为什么 它没有得到查询可以在数据库中实际找到的唯一元素。

我曾尝试在 SO 中搜索,甚至在 Google 中搜索示例,但没有成功。

我到底应该如何从对象中获取参数名称?

最佳答案

NodeJs 是异步的。您需要回电或Promise .

router.get('/', function(req, res) {
var name = '';
getName(function(data){
name = data;
console.log(name);

res.render('index', {
title: name,
year: date.getFullYear()
});
});
});

function getName(callback){
db.test.find({name: "Renato"}, function(err, objs){
var returnable_name;
if (objs.length == 1)
{
returnable_name = objs[0].name;
console.log(returnable_name); // this prints "Renato", as it should
callback(returnable_name);
}
});
}

关于javascript - 使用带有 Express 的 NodeJS 从 MongoDB 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27994972/

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