我正在使用Node.js,Express和EJS构建一个网站。现在我有两个EJS模板,每个模板对应一个网站页面:
主页网址应为/
或/home
。 “职员”网址应为/staff
。家庭工作正常,但出于某种原因,即使我访问/staff
甚至是无意义的地址(例如,/eduwshduhwudhwud
),我仍然可以获得主页。这是我的代码,它位于app.js
内部,用于构建路径。
var express = require("express");
var app = express();
app.use(express.static("public")); // To allow static files
app.set("view engine", "ejs");
// -------------------------------- HOME PAGE-----------------------------------
app.get("/", function(req, res){
res.render("home");
});
app.get("/home", function(req, res){
res.render("home");
})
// -------------------------------- STAFF PAGE-----------------------------------
app.get("/staff", function(req, res){
res.render("staff");
});
// -------------------------------- HOME PAGE-----------------------------------
// -------------------------------- HOME PAGE-----------------------------------
// -------------------------------- HOME PAGE-----------------------------------
app.listen(process.env.PORT, process.env.IP, function(){
console.log("SERVER IS RUNNING!");
})
答案 0 :(得分:0)
使用path.join(__dirname, 'views')
将应用程序的目录(即_dirname)组合到您的views目录。
这就是我在申请中的表现:
var express = require('express');
var path = require('path');
...
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views')); // <-- add this line before your view engine definition
app.set('view engine', 'ejs');
...
鉴于此,在我的路线中,我可以使用res.render()
引用views文件夹中的任何视图。例如:
res.render('dashboard', { title: 'My App', greeting: 'Hello' });