简体   繁体   中英

node.js/express/ejs not rendering root page?

I'm using node.js, express, and ejs as a development environment. I've run into an issue where my main page isn't rendered. However, other pages are rendered. I get absolutely no return when I access http://127.0.0.1:9999 . However, I get the proper response when I access http://127.0.0.1:9999/about . I replaced my normal page with a very simple test page to check if there was something wrong it. Nope. No change. I can only conclude that the path '/' (or '') isn't seeing the request.

Can anyone see the problem? Thanks

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>

I added the following route, and the path is not matched.

app.get("*", function(req, res) {
   console.log("* accessed");
   res.status(200).render("partials/test.ejs");
});

In the meanwhile it is possible to use:

app.use(express.static(app_path, { 
    index: false
}));

Credits to

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM