node js res.render不起作用,但是res.send起作用

问题描述 投票:0回答:2

我正在为节点js应用设置环境。但是views / ejs文件没有被渲染。如果我这样做:

app.get("/", function(req, res){

     res.send('Hello');
 });

有效。但是如果我这样做:

app.get("/", function(req, res){

   res.render("welcome");
});

没有。

我的app.js

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const indexRoutes = require("./routes/index");
const userRoutes = require("./routes/user");
const ejsLayouts = require("express-ejs-layouts");
const path = require("path");

 mongoose.connect("mongodb://localhost/userAuth", function(err, res) {
    if (err) throw err;
 console.log("Connected to database");
  });

 //EJS
 app.set('view engine','ejs');
 app.use(ejsLayouts); 
 app.use(express.static(__dirname + '/public'));

 app.set('views',path.join(__dirname+'/views'))

 //ROUTES
 app.use("/", indexRoutes);
 app.use("/user", userRoutes);

 app.listen(3000, function() {
      console.log("server started");
  });

我的index.js文件(userLogin / routes / index.js)

  const express=require("express");
  path = require('path');
  router= express.Router();

  router.get("/",function(req,res){
     res.render("check");

   });

  module.exports = router;

我的文件夹结构

userLogin

/ ..

/路线

   /index.js

/ views

   /welcome.ejs

我在welcome.ejs文件中有一个h1元素olny。

javascript node.js express ejs
2个回答
0
投票

查看您提供的代码,当您拥有的唯一视图称为index.js时,您正在尝试渲染check视图。您的路径和路线看起来正确,可以渲染正确的视图。


0
投票
welcome

如果您想渲染.html文件

然后

app.engine('html', require('ejs').renderFile); 
© www.soinside.com 2019 - 2024. All rights reserved.