简体   繁体   English

快速路线无法在视图文件夹中获取文件

[英]Express route Cannot get a file in views folder

I am fairly new to programming, and am struggling with trying to get the recipe.ejs file to show.我对编程相当陌生,并且正在努力尝试让 recipe.ejs 文件显示。 I cannot seem to create a route from recipe.js properly to get the recipe.ejs file and render it.我似乎无法从 recipe.js 正确创建路由来获取 recipe.ejs 文件并渲染它。 Any help would be greatly appreciated.任何帮助将不胜感激。

/routes/recipe.js /routes/recipe.js

    var express = require('express');
var router = express.Router();

/*GET recipe page*/    
router.get('/', function(req, res, next) {
    res.render('recipe');
});

module.exports = router;

**app.js**

var createError = require('http-errors');    
var express = require('express');    
var path = require('path');    
var cookieParser = require('cookie-parser');    
var logger = require('morgan');

var indexRouter = require('./routes/index');    
var usersRouter = require('./routes/users');    
var recipeRouter = require('./routes/recipe');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');    
app.use(logger('dev'));    
app.use(express.json());    
app.use(express.urlencoded({ extended: false }));    
app.use(cookieParser());    
app.use(express.static(path.join(__dirname, 'public')));    
app.use('/', indexRouter);    
app.use('/users', usersRouter);    
app.use('/recipe', recipeRouter);

// catch 404 and forward to error handler    
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler    
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

Try with this proved snippet:试试这个经过验证的片段:

package.json
server.js 
views/hello.ejs

server.js服务器.js

var express = require('express');
var app = express();
app.get("/", function(req, res) {
  res.render("hello.ejs");
});
app.listen(2708, function() {
  console.log("server is listening!!!");
});

hello.ejs你好.ejs

<h1>Hello EJS World </h1>

package.json package.json

{
  "name": "first-express-app",
  "description": "an example of using Express",
  "private": true,
  "version": "0.0.1",
  "dependencies": {
    "ejs": "^3.1.3",
    "express": "4.17.1"
  },
  "scripts": {
    "start": "node server"
  },
  "main": "quote"
}

If it works, you could use to compare it with your complex implementation to find the error.如果它有效,您可以使用它与您的复杂实现进行比较以找到错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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