gpt4 book ai didi

node.js - 为什么这个 coffeescript 代码总是返回 true?

转载 作者:IT王子 更新时间:2023-10-29 06:16:04 25 4
gpt4 key购买 nike

当我发布到服务器时,无论我向 auth 函数提供什么信息,它都会返回 true。我的直觉是我正在尝试同步做一些事情,这本质上是异步的,但我不知道如何修复它。

auth = (username, api_key, device) ->
hashed_key = hash.sha256(username + api_key + device, salt)
winston.debug('Checking auth for ' + username)
redis_client.get hashed_key, (err, data) ->
if data == username
true

# Main Handler for posting data for a device.
server.post "/:customer/:site/:device", create = (req, res, next) ->
message = JSON.parse(req.body)
winston.info(server.name + ': Recieved event from ' + req.params.device)
authenticated = auth(message.username, message.api_key, message.device)
winston.debug('****' + authenticated)
if authenticated == true
winston.debug('Auth passed, got a valid user/device/api combination: ' + message.username)
redis_client.publish('device_events', req.body)
return next()
else
winston.debug('Auth failed, cant find device ' + message.device + ' for ' + message.username)
return next(restify.NotAuthorizedError)

最佳答案

如果您知道(或有预感)某些东西是异步的,您应该将之后要执行的操作作为回调函数传递。我不确定你的服务器的 post 函数是如何工作的,但如果它像 Node HTTP's request您应该执行以下操作:

get = (location, callback, retriever, filterer, formatter)->
decoratedCallback = (data)->
callback formatter.applyFormat filterer.applyFilter data
retriever.retrieve location, decoratedCallback

module.exports = get

关于node.js - 为什么这个 coffeescript 代码总是返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10379688/

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