我正在为节点js app设置环境。 但是没有呈现views / ejs文件。如果我这样做:
app.get("/", function(req, res){
res.send('Something');
});
这很有效。但是,如果我这样做(有一个索引,ejs文件):
app.get("/", function(req, res){
res.render(index);
});
它不起作用,我在网页的cleint端获得“index not a defined”,但在命令行中没有错误。
这是app.js:
var express = require("express");
var path = require("path");
var app = express();
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
app.use(express.static(path.join(__dirname, 'public')));
app.get("/", function(req, res){
res.send('Something');
});
app.get("/", function(req, res){
res.render(index);
});
const port = process.env.PORT || 3000
app.listen(port, function () {
console.log(`Express is running on port ${port}`)
})
app.set参数有问题,还是有变化?我正在按照可能过时的教程,但检查文档,我没有看到问题。
那么,这里有什么问题,是否有一种新方法可以使用ejs进行路由?我知道局部已经消失了。这是否意味着根本没有ejs文件,如果是这样,它现在应该如何完成?通过渲染html文件?
由于
答案 0 :(得分:1)
嗯,我不是快递专家,但是这里没有定义索引,因为你把它写成变量。尝试使用类似的东西
res.render(path.resolve(__dirname + "/views/index"));