第4章 扔回海里 - nswbmw/N-drifter GitHub Wiki
我们在看完一个漂流瓶后,还可以选择扔回海里,下面我们来实现这个功能。
我们设定:扔回海里的漂流瓶生存期不变。即假如一个漂流瓶自扔出后半天被捡到,又被扔入了海里,那么该漂流瓶的生存期剩余为半天。
这里我们可以使用 app.post('/')
接口,而不必创建新的接口。但需要注意的是,用户捡到的瓶子是包含 time 键的,所以扔回海里时带有 time 参数,所以不能也不会省略。扔新瓶子的时候可以省略。
打开 redis.js ,将 throwOneBottle
函数中的:
client.EXPIRE(bottleId, 86400, function () {
修改为:
client.PEXPIRE(bottleId, 86400000 + bottle.time - Date.now(), function () {
这里我们根据漂流瓶的原始时间戳来设置生存期,而不是 1 天。
注意: 假如通过 EXPIRE 或 PEXPIRE 设置一个键的生存期为非正数,则表示立即删除该键。
现在,我们实现了将漂流瓶扔回海里的功能。