Nodejs Express - public文件夹内的子文件夹无法正常工作

13 浏览
0 Comments

Nodejs Express - public文件夹内的子文件夹无法正常工作

我使用express创建了一个nodejs应用程序来提供我的个人作品集和项目。当访问根目录“/”时,我的个人作品集可以正常工作,但是当我像“/FootballScores”和“/FacebookGrabber”这样提供我的项目时,一个项目只能部分工作(意味着所有的angular文件成功加载,但是什么也不显示),另一个项目无法加载,并显示错误信息:

"Error: Cannot find module 'html'"

另外,我已经安装了所有的npm包。这是app.js的代码:

var express = require("express"),
app = express(),
bodyParser = require("body-parser"),
nodemailer = require("nodemailer"),
xoauth2 = require("xoauth2"),
path = require("path");
app.use(express.static(path.join(__dirname, "public")));
app.use(bodyParser.urlencoded({extended: true}));
app.get("/", function(req, res){
res.render("index.html");
});
app.get("/FacebookGrabber", function(req, res){
res.render("FacebookGrabber/index.html");
});
app.get("/FootballScores", function(req, res){
res.render("FootballScores/index.html");
});
app.listen(3000, process.env.IP, function(){
console.log("Portfolio Server Started!");
});

我认为问题可能是由于不正确的public路径导致的...我该怎么办才能使我的项目/FootballScores和/FacebookGrabber正确加载?

0
0 Comments

原因:

在这个问题中,原因是用户在复制FacebookGrabber文件夹时,文件夹是空的,没有index.html文件。

解决方法:

1. 检查文件夹内容:确保复制的文件夹中有所需的index.html文件。

2. 重新复制文件夹:如果文件夹为空或缺少index.html文件,请重新复制文件夹并确保将index.html文件包含在内。

感谢大家的帮助。

0
0 Comments

在Node.js Express中,有一个问题是在public文件夹中的子文件夹无法正常工作。这篇文章将探讨这个问题的原因以及解决方法。

如果你尝试在res.render调用之前设置视图引擎为html,问题可能会得到解决。你可以使用以下代码设置视图引擎:

// 视图引擎
app.set('view engine', 'html');

这样做的原因是,当你使用Express框架时,默认的视图引擎是EJS或Pug等。这些引擎通常不支持在public文件夹的子文件夹中渲染HTML文件。因此,你需要明确告诉Express使用HTML作为视图引擎。

通过设置视图引擎为html,Express将能够正确识别并渲染public文件夹中的子文件夹中的HTML文件。这样,你就可以在public文件夹的子文件夹中正常使用文件。

希望这篇文章能帮助你解决Node.js Express中public文件夹中子文件夹无法工作的问题。如果你遇到类似的问题,请尝试设置视图引擎为html,这可能会解决你的问题。

0