我正在尝试编写一个代码,用于将我的所有Http
请求重定向到Https
,现在我想问我在许多不同的网站上看到过以下代码,但其中一些使用{{1} } return
,有些人使用res.redirect
return
after
,有些人不使用任何内容,有些人只使用res.redirect
next()
{{ 1}}。
我只是想问一下after
或res.redirect
在这里使用return
的用途。或者我在这里遗漏了什么?
next()
答案 0 :(得分:2)
next()
是Express中间件的一部分。它告诉在函数流程图上执行下一个中间件函数。如果未使用,则不会执行下一个中间件。
return
仅用于确保在触发回调后执行停止,即无论是否将next
或redirect
与public class Main extends JavaPlugin implements Listener {
public ArrayList<Player> players = new ArrayList<>();
// My HashMap with the threads
private HashMap<BukkitTask, Integer> game = new HashMap<>();
public void onEnable() {
this.getServer().getPluginManager().registerEvents(this, this);
// Create a thread here and let it run the whole game
BukkitTask task = new Game(this).runTaskTimer(this,1,20);
game.put(task, task.getTaskId());
}
public void onDisable() {
}
// Eventhandlers that control the ArrayList with players
@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player player = e.getPlayer();
this.players.add(player);
if (!this.players.contains(player)) {
this.players.add(player);
}
}
@EventHandler
public void onQuit(PlayerQuitEvent e) {
Player player = e.getPlayer();
if (!this.players.contains(player)) {
this.players.remove(player);
}
}
}
一起使用,都不会再次处理回调的任何部分停止执行该特定功能。
答案 1 :(得分:0)
通常,我建议使用:
return res.redirect("https://" + req.headers.host + req.url);
由于在这种情况下,您显式返回了重定向响应。
在大多数情况下,仅res.redirect()
就足够了,并且确实具有重定向响应(HTTP 302),但是服务器日志中可能会出现错误,尤其是在async (req, res) => {}
函数中使用它时。