【发布时间】:2019-12-23 01:35:18
【问题描述】:
我使用 node.js、express 和 ejs 作为开发环境。我遇到了我的主页没有呈现的问题。但是,会呈现其他页面。当我访问http://127.0.0.1:9999 时,我绝对没有回报。但是,当我访问http://127.0.0.1:9999/about 时,我得到了正确的响应。我用一个非常简单的测试页面替换了我的正常页面,以检查它是否有问题。没有。没变。我只能得出结论,路径'/'(或'')没有看到请求。
任何人都可以看到问题吗?谢谢
app.js
const path = require("path");
const express = require("express");
const ejs = require("ejs");
const app = express();
const port = 9999;
const viewsPath = path.join(__dirname, "./views");
app.set("view engine", "ejs");
app.set("views", viewsPath);
app.use(express.static(path.join(__dirname, "/public")));
app.get("/", function(req, res) {
console.log("index accessed");
res.status(200).render("partials/test.ejs");
});
app.get("/about", function(req, res) {
console.log("about accessed");
res.status(200).render("partials/test.ejs");
});
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
test.ejs
<h1>This is a test page</h1>
我添加了以下路由,路径不匹配。
app.get("*", function(req, res) {
console.log("* accessed");
res.status(200).render("partials/test.ejs");
});
【问题讨论】:
-
在路由处理程序中添加一些控制台日志,然后:当您访问
localhost:9999/时,您的控制台说您正在点击什么,您的浏览器开发工具“网络”选项卡说什么? -
我打赌你在
/public中有一个index.html文件,并且app.use(express.static(path.join(__dirname, "/public")));路由(在app.get("/", function(req, res) {路由之前定义)首先匹配它。 -
app.get("", function(req, res) { console.log(" 已访问"); res.status(200).render("partials/ test.ejs"); });
-
昆汀,这就是问题所在!谢谢
-
@Quentin 是对的。就我而言,这就是问题所在。非常感谢!!!
标签: javascript node.js express ejs