Я новичок в nodejs, и я получаю следующую ошибку.
Error: Failed to lookup view "home" in views directory "/views"
Я запускаю приложение через служебный файл. Файл службы запускает приложение, но я получаю указанную выше ошибку. Однако, когда я запускаю приложение с помощью nodejs app.js
, я не получаю сообщение об ошибке, и приложение работает нормально.
файл app.js
var express = require('express');
var app = express();
var routes = require('./routes');
var path = require('path');
app.use(express.static(path.join(__dirname, 'public')));
app.set('view engine','ejs');
app.get('/starwars/',routes.home);
файл маршрутов.
var moviesJSON = require('../movies.json');
exports.home = function(req,res){
var movies = moviesJSON.movies;
res.render('home',
{
title:'Star Wars Movies.',
movies: movies,
//movies:['Episode 1','Episode 2','Episode 3']
}
);
};
Я пытался изменить расположение маршрутов на ../routes
, но это дает мне ошибку шлюза. Так что я в тупике.
служебный файл
User=webuser
Group=webgroup
ExecStart=/usr/bin/nodejs /home/pi/examples/nodeapp/star_wars_movie_app/app.js
Мне нужно было добавить следующую строку в app.js
app.set('views', path.join(__dirname, 'views'));
Фиксированный. Поскольку я новичок в узле, я не знал, что мне нужно установить каталог представлений. добавил
app.set('views', path.join(__dirname, 'views'));
и все работает. Я не уверен, почему мне не нужно было добавлять эту строку при запуске через командную строку сnodejs app.js