Почему мой код не находит мою навигацию частичной? - PullRequest
0 голосов
/ 11 марта 2020

У меня есть следующий файл:

contact.e js:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        body {
            background: skyblue;
            font-family: verdana,serif;
            color: #fff;
            padding: 30px;
        }

        h1 {
            font-size: 48px;
            text-transform: uppercase;
            letter-spacing: 2px;
            text-align: center;
        }

        p {
            font-size: 16px;
            text-align: center;
        }
    </style>
</head>
<body>
<% include('partials/nav'); %>

<h1>Contact Us</h1>
</body>
</html>

и следующее приложение. js file:

var express = require('express');

var app = express();

app.set('view engine', 'ejs');

app.get('/', function(req, res){
    res.render('partials/index');
});

app.get('/contact', function(req, res){
    res.render('partials/contact');
});

app.get('/profile/:name', function (req, res) {
    var data = {age: 30, job: 'ninja', hobbies: ['eating', 'hunting', 'fishing']};
    res.render('profile', {person: req.params.name, data: data});
});

app.listen(3000);

И следующий файл nav.e js:

<nav>
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</nav>

Со следующей структурой файла: enter image description here

Когда я запускаю код с помощью:

приложение nodemon. js

В моем браузере и в среде IDE WebStorm появляется следующая ошибка:

 Error: /home/doug/WebstormProjects/node-js-tutorial/views/partials/contact.ejs:29
    27| </head>
    28| <body>
 >> 29| <% include('partials/nav'); %>
    30| 
    31| <h1>Contact Us</h1>
    32| </body>

Could not find the include file "partials/nav"
    at getIncludePath (/home/doug/WebstormProjects/node-js-tutorial/node_modules/ejs/lib/ejs.js:165:13)
    at includeFile (/home/doug/WebstormProjects/node-js-tutorial/node_modules/ejs/lib/ejs.js:291:19)
    at include (/home/doug/WebstormProjects/node-js-tutorial/node_modules/ejs/lib/ejs.js:654:16)
    at eval (/home/doug/WebstormProjects/node-js-tutorial/views/partials/contact.ejs:12:8)
    at contact (/home/doug/WebstormProjects/node-js-tutorial/node_modules/ejs/lib/ejs.js:656:17)
    at tryHandleCache (/home/doug/WebstormProjects/node-js-tutorial/node_modules/ejs/lib/ejs.js:254:36)
    at View.exports.renderFile [as engine] (/home/doug/WebstormProjects/node-js-tutorial/node_modules/ejs/lib/ejs.js:459:10)
    at View.render (/home/doug/WebstormProjects/node-js-tutorial/node_modules/express/lib/view.js:135:8)
    at tryRender (/home/doug/WebstormProjects/node-js-tutorial/node_modules/express/lib/application.js:640:10)
    at Function.render (/home/doug/WebstormProjects/node-js-tutorial/node_modules/express/lib/application.js:592:3)

Указывается, что оно не удалось найти файл, но он, кажется, структурирован для меня. Это сводило меня с ума, так что отправлять. Если есть что-нибудь, что я могу добавить для ясности, пожалуйста, дайте мне знать.

Что не так с моим кодом, который мешает отображению файла навигации?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 11 марта 2020

удалось решить проблему, переключив

<% include('partials/nav'); %>

на

<%- include('nav'); %>
...