2013-03-08 6 views
5

Im новый узел js. Я использовал Compound Js для создания грубой операции.Ошибка: не удается найти модуль 'jade ~'

приложение работает нормально, пока я пытался предупредить значение, после того, что я получаю ошибку

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) 

Как решить эту

Мой индекс

#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 файл

!!! 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') 

ответ

4

The issue was with Fedora-16, над которым я работал. Временный файл, созданный при редактировании, т. Е. 'Index.jade ~', не был очищен и, следовательно, проблема возникла.

Проблема может быть решена в Fedora-16 либо удалить временный файл, 'index.jade ~ или переименования модуля узла «Джейд» на "нефрит ~

1

У вас почти наверняка есть require('jade~') с простой опечаткой, где вы хотите просто require('jade'). Проверьте свою экспресс-линию app.engine('jade') как еще один вероятный подозреваемый.

+0

который файл для проверки? – Okky

+0

Приложение работало нормально, пока я не добавил предупреждение. – Okky

+1

Возможно, вы назвали ваш файл 'server.js' или' app.js'. Ограниченные имеющиеся свидетельства указывают СИЛЬНО на очень простой, основной опечатке. Найдите свои файлы для 'jade ~' и исправьте его, а затем продолжайте свою жизнь. Вы думаете, что это работает нормально, пока вы не добавили предупреждение, но вы, несомненно, ошибаетесь. В node.js нет предупреждения, и то, что происходит в браузере, не приведет к тому, что узел не сможет найти нефритовый модуль. –

17

У меня есть довольно та же проблема, но «Не могу найти модуль« нефрит », а не« нефрит »; и я уверен, что уже сделал «npm install jade». После некоторого исследования я выяснил, что моя проблема, потому что я устанавливаю экспресс глобально, в то время как jade установлен локально, ссылается на эту помощь. https://www.openshift.com/forums/express/nodejs-and-jade-error-cannot-find-module-jade Я решил свою проблему. Я размещаю ее здесь, думая, что это может помочь некоторым другим, кто сталкивается с той же проблемой, что и me :)

9

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

Моя ошибка выглядит следующим образом:

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) 

, если вы наблюдаете эту строку:

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

Вы увидите, что это не местоположение по умолчанию для установки НПМ для глобальной или локальной .. Так как работа вокруг, я установил нефрит в следующей папке

cd /Users/ajeetganga/node_modules/ 
npm install jade 

I думаю, что это сработало бы, даже если бы я установил нефрит из папки/Users/ajeetganga /, но никогда не пробовал. :)

+0

У меня была такая же трассировка стека ошибок, когда вручную создавался экспресс-проект и работал на eclipse. Я установил нефрит, как вы предложили в корне проекта, он сработал. – Venkat

1

У меня такая же проблема после редактирования файла нефрита с помощью Emacs. Решение довольно просто: найдите файл jade ~ и удалите его.

18

У меня была такая же проблема в учебнике по учебникам для учеников. Я решил ее путем включения зависимостей в package.json:

НПМ установить --save выразить Джейд

+0

Это помогло мне. После прочтения я понял, что каким-то образом я удалил модуль нефрита из пакета package.json моего проекта, и поэтому он не был найден. Добавил его обратно, обновил npm, и все сработало. – bearvarine

+0

Это тоже помогло :) – AnNaMaLaI

+0

Спасибо за это. Использул Team Treehouse для изучения Node.js, и у них был целый раздел на Jade (теперь он переименован в Pug) и прошел кучу итераций, пытаясь заставить это работать. Урок выучен. –

0

Я была такая же проблема (нефрит-загрузчик в моем проекте WebPack машинописи +). Я разрешил его, установив jade-loader как равноправную.

Смежные вопросы