2015-05-05 7 views
1

Это то, что я получаю, когда я бегу «Node server.js» и получить «прослушивание» в качестве ответа, а затем открыть свой браузер, чтобы найти это:Node.js: Не удалось найти представление

Error: Failed to lookup view "./login/login" in views directory "C:\Users\Ghanem\cloud1\views" 
    at EventEmitter.app.render (C:\Users\Ghanem\cloud1\node_modules\express\lib\application.js:555:17) 
    at ServerResponse.res.render (C:\Users\Ghanem\cloud1\node_modules\express\lib\response.js:938:7) 
    at C:\Users\Ghanem\cloud1\server.js:226:7 
    at Layer.handle [as handle_request] (C:\Users\Ghanem\cloud1\node_modules\express\lib\router\layer.js:82:5) 
    at next (C:\Users\Ghanem\cloud1\node_modules\express\lib\router\route.js:110:13) 
    at Route.dispatch (C:\Users\Ghanem\cloud1\node_modules\express\lib\router\route.js:91:3) 
    at Layer.handle [as handle_request] (C:\Users\Ghanem\cloud1\node_modules\express\lib\router\layer.js:82:5) 
    at C:\Users\Ghanem\cloud1\node_modules\express\lib\router\index.js:267:22 
    at Function.proto.process_params (C:\Users\Ghanem\cloud1\node_modules\express\lib\router\index.js:321:12) 
    at next (C:\Users\Ghanem\cloud1\node_modules\express\lib\router\index.js:261:10) 

Я переместил папку «views» из «C: \ Users \ Ghanem \ cloud1 \ app \ server \ views» в «C: \ Users \ Ghanem \ cloud1 \ views», но по-прежнему происходит одна и та же ошибка (я переместил ее обратно сейчас) ,

Вот строка кода "./login/login" от server.js:

app.get("/login", function (req, res) { 
    // Show form, default value = current username 
    res.render("./login/login", { "username": req.session.username, "error": null }); 
}); 

Вот структура:

./ 
    app/ 
    public/ 
      css/ 
       style.css 
       style.styl 

      img/ 
       glyph.png 
       glyph1.png 

      js/ 
      controllers/ 
         homeController.js 
         loginController.js 
         signupController.js 

      form-validators/ 
          accountValidator.js 
          emailValidator.js 
          loginValidator.js 
          resetValidator.js 
      views/ 
        home.js 
        login.js 
        reset.js 
        signup.js 


      vendor/ 
        bootstrap.min.css 
        bootstrap-modal.js 
        bootstrap-transition.js 
        jquery.form.js 
        jquery.min.js 


    server/ 
      modules/ 
        account-manager.js 
        country-list.js 
        email-dispatcher.js 
        email-settings.js 
      views/ 
       el/ 
       Models/ 
         alert.jade 
         confirm.jade 
         form-errors.jade 
         lost-password.jade 
         reset-password.jade 

       404.jade 
       account.jade 
       home.jade 
       layout.jade 
       login.jade 
       print.jade 
       reset.jade 
       signup.jade    


     router.js 
     router.js.b 


      router.js 
      router.js.b 

Как я могу исправить эту проблему? Имейте в виду, что я уже переместил папку представлений в корневую папку, но так или иначе ее не обнаружили.

+0

Что вы установили для 'app.set ('views');'? – vanadium23

+0

Я не вижу вид под названием '/ login/login' –

+0

@ vanadium23 app.set ('views', path.join (__ dirname, 'views')); –

ответ

0

Основываясь на ваш комментарий:

app.set('views', path.join(__dirname, 'views')); 

Так что, если вы пишете:

app.get("/login", function (req, res) { 
    // Show form, default value = current username 
    res.render("login/login", { "username": req.session.username, "error": null }); 
}); 

Шаблон должен быть в app/server/views/login/login.ejs, если ваш index.js находятся в папке приложения/сервера.

+0

@JesseJames, затем измените 'login/login' только на' login' – vanadium23

+0

Хорошо, я сейчас его поменяю. Спасибо чувак. –