gpt4 book ai didi

javascript - Node js回调函数

转载 作者:行者123 更新时间:2023-12-03 11:47:00 25 4
gpt4 key购买 nike

我是 NodeJs 新手。在我的代码中,我有一个异步函数用于从 mongoDB 查找记录。

var restify = require('restify');
var mongojs = require('mongojs');

var ip_addr = '127.0.0.1';
var port = '8080';

var server = restify.createServer({
name : "signapp"
});

server.use(restify.queryParser());
server.use(restify.bodyParser());
server.use(restify.CORS());

var connection_string = '127.0.0.1:27017/signapp';
var db = mongojs(connection_string, ['signapp']);

var docDetails = db.collection("SIGN_DOCUMENT_DETAILS");

var PATH = '/documents'
server.post({path : PATH + '/:search', version: '0.0.1'}, searchDoc);

function searchDoc(req, res, next)
{
var criteria = {};
criteria.DOC_NAME = req.params.DOC_NAME;

if (criteria.DOC_NAME !== '' || criteria.DOC_NAME !== null)
{
docDetails.find({DOC_NAME : criteria.DOC_NAME}, function(err, users){
if( err || !users){
console.log("No record found");
}
else {
console.log('record found');
}
});
}

}

在我的请求中,我传递了一个字符串参数。当条件匹配时,我在控制台中收到“找到记录”响应。但问题是,即使查找条件失败,我也会在控制台中收到“找到记录”的响应。我尝试了很多找到解决方案但失败了。请告诉我我的代码哪里出了问题。对于此错误的解决方案将不胜感激。提前致谢。

最佳答案

改变你的条件,例如

if( err){
console.log("An error occurred");
} else if(!users || users.length==0) {
console.log("No results found");
} else {
console.log('record found');
}

您需要添加一个条件来检查返回的数组是否为空。

注意:

javascript empty array seems to be true and false at the same time给出了为什么你不应该使用 if(!users) 来检查数组是否为空的正确解释。

关于javascript - Node js回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26009718/

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