2013-03-08 22 views
5

Jestem nowy w węźle js. Użyłem Compound Js, aby utworzyć operację crud.Błąd: Nie można znaleźć modułu 'jade ~'

Aplikacja działa dobrze, dopóki nie próbował ostrzec wartość, po czym Dostaję błąd

500 Error: Cannot find module 'jade~' 
at Function.Module._resolveFilename (module.js:338:15) 
at Function.Module._load (module.js:280:25) 
at Module.require (module.js:362:17) 
at require (module.js:378:17) 

Jak rozwiązać ten

Moje indeks

#tabs 
    ul 
    li 
     a(href='#tabs-1') New Leave 
    li 
     a(href='#tabs-2') Index of Leave 
    #tabs-1 
    .page-header 
     h1 New employee 

    - var form = formFor(employee, {action: pathTo.employees(), method: 'POST', id: "employee_form", class: 'form-horizontal'}) 

    != form.begin() 
    != errorMessagesFor(employee) 
    .control-group 
     != form.label("code", false, {class: "control-label"}) 
     .controls 
     != form.input("code") 
    .control-group 
    != form.label("description", false, {class: "control-label"}) 
     .controls 
     != form.input("description") 
    .control-group 
     != form.label("applicable", false, {class: "control-label"}) 
     .controls 
     != form.input("applicable") 
    .control-group 
     != form.label("cForward", false, {class: "control-label"}) 
     .controls 
     != form.checkbox("cForward") 
    .control-group 
     != form.label("limit", false, {class: "control-label"}) 
     .controls 
     != form.checkbox("limit") 
    .control-group 
     != form.label("lop", false, {class: "control-label"}) 
     .controls 
     != form.checkbox("lop") 
    .control-group 
     != form.label("od", false, {class: "control-label"}) 
     .controls 
     != form.checkbox("od") 
    .control-group 
     != form.label("co", false, {class: "control-label"}) 
     .controls 
     != form.checkbox("co") 
    .control-group 
     != form.label("lrevision", false, {class: "control-label"}) 
     .controls 
     != form.checkbox("lrevision") 
    .control-group 
     != form.label("active", false, {class: "control-label"}) 
     .controls 
     != form.checkbox("active") 
    .form-actions 
     != form.submit('<i class="icon-ok icon-white"></i> Create employee', {class: 'btn btn-primary'}) 
     span= ' or ' 
     != linkTo('Cancel', pathTo.employees(), {class: 'btn'}) 
    != form.end() 
    #tabs-2 
    .page-header 
     h1 Index of employees 


    .row 
     .span12 
     p 
      != linkTo('<i class="icon-plus icon-white"></i> New employee', path_to.new_employee(), {class: 'btn btn-primary'}) 

    - if (employees.length) { 
    .row 
     .span12 
     table.table.table-striped 
      thead 
      tr 
       th ID 
       th.span3 Actions 
      tbody 
      - employees.forEach(function (employee) { 
      tr 
       td 
       != linkTo('employee #' + employee.id, path_to.employee(employee)) 
       td 
       != linkTo('<i class="icon-edit"></i> Edit', pathTo.edit_employee(employee), {class: 'btn btn-mini'}) + ' ' 
       != linkTo('<i class="icon-remove icon-white"></i> Delete', pathTo.employee(employee), {class: 'btn btn-mini btn-danger', method: 'delete', remote: true, jsonp: '(function (u) {location.href = u;})'}) 
      - }); 
    - } else{ 
    .row 
     .span12 
     p.alert.alert-block.alert-info 
      strong No employees were found. 
    - } 

Layout plik

!!! 5 
html 
    head 
    title= title 
    != stylesheetLinkTag('http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/base/jquery-ui.css', 'bootstrap', 'application', 'bootstrap-responsive') 
    != javascriptIncludeTag('https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.js', 'rails', 'application') 
    script 
     $(document).ready(function() { 
     $("#tabs").tabs(); 
     }); 
    != csrfMetaTag() 
    body 
    .navbar 
     .navbar-inner 
      .container 
       a.brand(href='#') Project name 

    .container 
     - var flash = request.flash('info').pop(); if (flash) { 
     .alert.alert-info= flash 
     - } 

     - flash = request.flash('error').pop(); if (flash) { 
     .alert.alert-error= flash 
     - } 

     != body 

     hr 
     footer 
     p © Company 2012 
    != contentFor('javascripts') 

Odpowiedz

4

The issue was with Fedora-16, nad którym pracowałem. Plik tymczasowy utworzony podczas edycji, np. "Index.jade ~", nie został wyczyszczony, a zatem pojawił się problem.

Problem może zostać rozwiązany w Fedora-16 albo przez usuwanie pliku tymczasowego „index.jade ~” lub przez zmiana nazwy modułu węzła „jade” do „jade ~”

1

Uh, prawie na pewno masz require('jade~') z prostą literówką, w której chcesz tylko require('jade'). Sprawdź swoją linię ekspresową app.engine('jade') jako inny prawdopodobny podejrzany.

+0

który plik należy sprawdzić? – Okky

+0

Aplikacja działała poprawnie, dopóki nie dodałem alertu. – Okky

+1

Prawdopodobnie nazwałeś swój plik 'server.js' lub' app.js'. Ograniczone dostępne dowody wskazują SILNIE na bardzo prostą, podstawową literówkę. Wyszukaj swoje pliki dla 'jade ~' i napraw je, a następnie kontynuuj swoje życie. Myślisz, że działało dobrze, dopóki nie dodałeś alertu, ale z pewnością jesteś nierozważny. W pliku node.js nie ma alertu, a to, co dzieje się w przeglądarce, nie spowoduje, że węzeł nie znajdzie modułu jade. –

17

mam dość ten sam problem, ale "Nie można znaleźć modułu" jade "", a nie "jade"; i jestem pewien, że już zrobiłem "npm install jade". Po pewnym czasie pracy dowiedziałem się, że mój problem polega na tym, że instaluję ekspresowo na całym świecie, podczas gdy jade instaluje się lokalnie, odwołując się do tej pomocy. https://www.openshift.com/forums/express/nodejs-and-jade-error-cannot-find-module-jade Rozwiązałem mój problem. Zamieszczam go tutaj, myśląc, że może to pomóc innym, którzy napotykają ten sam problem, co ja :)

9

Dla mnie ten problem okazał się inny. Zainstalowałem jade i wyrażam zarówno lokalnie, jak i globalnie, w nadziei, że się nawzajem jakoś odnajdą, ale wciąż wyrażałem narzekanie na jade.

Mój błąd wyglądał tak:

Express server listening on port 3000 
Error: Cannot find module 'jade' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at new View (/Users/ajeetganga/node_modules/express/lib/view.js:43:49) 
    at Function.app.render (/Users/ajeetganga/node_modules/express/lib/application.js:488:12) 
    at ServerResponse.res.render (/Users/ajeetganga/node_modules/express/lib/response.js:798:7) 
    at exports.index (/Users/ajeetganga/Documents/WORKSPACE/TinyUrl/MyTinyUrl2/routes/index.js:7:7) 
    at callbacks (/Users/ajeetganga/node_modules/express/lib/router/index.js:164:37) 
    at param (/Users/ajeetganga/node_modules/express/lib/router/index.js:138:11) 

jeśli obserwować tę linię:

at new View (/Users/ajeetganga/node_modules/express/lib/view.js:43:49) 

widać, że nie jest domyślna lokalizacja dla instalacji npm do globalnej lub lokalnej .. W związku z tym zainstalowałem jade w następującym folderze:

cd /Users/ajeetganga/node_modules/ 
npm install jade 

I myślę, że działałoby, nawet gdybym zainstalował jade z folderu/Users/ajeetganga /, ale nigdy nie próbował. :)

+0

Miałem ten sam ślad stosu błędów podczas ręcznego tworzenia projektu ekspresowego i uruchamiania w środowisku Eclipse. Zainstalowałem jadeit, jak zasugerowałeś w katalogu głównym projektu, zadziałało. – Venkat

1

Mam ten sam problem po edycji pliku jade z Emacsem. Rozwiązanie jest dość proste: znajdź plik jade i usuń go.

18

Miałem ten sam problem w tutorialu nodeschool expressworks. Rozwiązałem go poprzez włączenie w zależności package.json:

npm zainstalować flagą --save wyrazić Jade

+0

To mi pomogło. Po przeczytaniu zdałem sobie sprawę, że jakoś usunąłem moduł jade z pakietu package.json mojego projektu, i dlatego go nie znaleziono. Dodano go, wykonałem aktualizację npm i wszystko działało. – bearvarine

+0

To też mi pomogło :) – AnNaMaLaI

+0

Dziękuję za to. Używał Team Treehouse do nauki Node.js i mieli całą sekcję o Jade (teraz przemianowaną na Pug) i przeszli przez kilka iteracji próbując uruchomić to. Lekcja. –

0

miałem ten sam problem (jade-ładowarka w moim projekcie WebPACK + maszynopisu). Rozwiązałem go, instalując jade-loader jako zależność peer.

Powiązane problemy