当前位置: 首页 > 知识库问答 >
问题:

使用Express.Static后get内的代码未运行

袁高明
2023-03-14

这是我的nodejs express设置:

var express = require('express');
var app = express();

app.use(express.static('public'));

app.get('*', function (req, res) {
  res.sendfile('public/index.html')
});

app.listen(process.env.PORT || 3000, function () {
  console.log('Example app listening on port 3000!');
});


module.exports = app;

我发现当它使用:

app.use(express.static(“public”));

get中不运行任何内容:

app.get(“*”,function(req,res){//nothing res.sendfile(“public/index.html”)});

PS:我想在get内部重定向(HTTP->https)。

共有1个答案

丁鸿信
2023-03-14

如果您想要将所有http请求重定向到https,那么插入一个app.use()中间件作为第一个具有重定向逻辑的请求处理程序到https。Express按照定义请求处理程序的顺序处理请求处理程序,并且您希望在Express.static()中间件之前首先处理该中间件。

当然,您需要将所有其他请求处理程序放在https服务器上(而不是http服务器上),这样https服务器就可以在重定向后处理您的URL(这是您的代码没有显示的)。

 类似资料:
  • 问题内容: 在下面,该语句在调用完成 之前 被执行。我该如何更改? 问题答案: 您不能-至少不明智。虽然可以在jQuery ajax请求上设置一个属性,但过去在尝试将其与值一起使用时遇到了 严重的问题。 尝试重新考虑您要完成的工作: 然后: 或者,如果您的回调 仅 需要访问返回的数据,那么您可以更简单地执行 然后

  • 问题内容: 我在代理后面,我需要通过安装一些东西。 我最好的是这个 问题是,我之后需要取消设置这些环境变量。 任何想法如何做到少于5层? 问题答案: 您需要使用构建时变量(–build-arg)。 该标志允许您传递在Dockerfile的RUN指令中像常规环境变量一样被访问的构建时变量。而且,这些值不会像ENV值那样保留在中间或最终图像中。 因此,您只有3行: 您只需要定义构建时变量和/或在图像构

  • 当本地机器的计算资源有限时,可以通过云计算服务获取更强大的计算资源来运行本书中的深度学习代码。本节将介绍如何在AWS(亚马逊的云计算服务)上申请实例并通过Jupyter记事本运行代码。本节中的例子有如下两个步骤。 申请含一个K80 GPU的p2.xlarge实例。 安装CUDA及相应GPU版本的MXNet。 申请其他类型的实例或安装其他版本的MXNet的方法与本节类似。 申请账号并登陆 首先,我们

  • 问题内容: 我有一种情况,我加载了一个父网页(可能是Java JSP),该网页包含我正在使用文档就绪函数内的ajax(asynch)加载的内容,希望该页面能够快速呈现任何内容,然后运行jQuery代码以页面显示后执行紧急工作。 它按照预期在Firefox中正常工作-页面快速呈现,然后jquery代码运行ajax调用并加载其他元素。 在IE8中,它等待直到一切完成,然后呈现完成的结果。它不支持我的文

  • 问题内容: 基本上,我想做两件事: 我想知道是否可以使用Java代码运行Java代码。 如果可能的话,如何在屏幕上显示输出?(无论是常规输出还是错误或异常) 我知道这是可能的,因为我的一位前辈已经做到了,但是我不知道他是如何做到的。也许他使用了Java的内置类之一。 注意:用户将代码写入一些文本文件中,然后将文件内容存储在某个变量中,然后也许运行该代码。 问题答案: 是的,有可能。 步骤1:编译代

  • 我使用Java-8编译器编译了以下代码: