gpt4 book ai didi

javascript - Node.js 不会返回任何内容?

转载 作者:行者123 更新时间:2023-12-03 06:14:05 24 4
gpt4 key购买 nike

为什么不会usernametoid函数返回什么?我通过安慰它知道它存在,但它不会存储在 otherplayerid 中多变的?为什么?

我的应用程序:(调用 post api Kill)

var userFunc   = require('../factory/user_factory.js');

app.post('/api/kill', function (req, res) {

var username = "signature";//req.query.username;

var otherplayerid = userFunc.usernametoid(username);
if (!(otherplayerid)) {
console.log("other player is acually " + otherplayerid);
result.push("denne brukeren finnes ikke! " + otherplayerid);

} else {

}
});

和我的 user_factory:

var articles = require('../controllers/articles.server.controller'),
path = require('path'),
mongoose = require('mongoose'),
Article = mongoose.model('Article'),
Users = mongoose.model('User'),
errorHandler = require(path.resolve('./modules/core/server/controllers/errors.server.controller'));



exports.usernametoid = usernametoid;





function usernametoid(id) {

var query = Users.findOne( { username : id } );
query.exec(function(err, datas) {
console.log(datas._id);
return datas._id;
});
}

控制台:

 other player is acually undefined
57c1c0f3b6b20c011242bf22

最佳答案

您需要阅读有关异步调用的内容。这是数据库请求。简单的修复是回调:

function something(data, callback) {
return callback('some data from db')
}

something('x', function(cb) {
console.log(cb)
}

最好返回两个值(错误、回调)。但你可以稍后再读。也有 promise 。您可以阅读有关它们而不是回调的内容,但建议您了解两者。

关于javascript - Node.js 不会返回任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39184147/

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