2013-03-08 151 views
5

Im对节点j新增。我使用化合物Js来创建crud操作。错误:无法找到模块'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. 
    - } 

布局文件

!!! 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 2013-03-08 08:27:07

+0

该应用程序工作正常,直到我添加了一个提醒。 – Okky 2013-03-08 08:28:13

+1

您可能已将您的文件命名为'server.js'或'app.js'。有限的证据强烈地指向一个非常简单的基本错字。搜索你的文件“玉〜”并修复它,然后继续你的生活。你认为它工作正常,直到你添加了警报,但你肯定是误导了。 node.js中没有警报,浏览器中发生的事情不会导致节点找不到玉石模块。 – 2013-03-08 08:34:29

17

我有相当同样的问题,但“无法找到模块'玉'”,而不是'玉〜';我很确定我已经做了“npm install jade”。经过一段时间的研究后,我发现我的问题是因为我在本地安装了玉器的同时在全球安装了express,参考此帮助https://www.openshift.com/forums/express/nodejs-and-jade-error-cannot-find-module-jade我解决了我的问题..我在此处发布它,认为它可以帮助其他面临相同问题的人我:)

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) 

你会看到,它不是NPM安装的全局或局部的默认位置.. 所以作为解决办法,我在以下文件夹中安装了玉石

cd /Users/ajeetganga/node_modules/ 
npm install jade 

I认为即使我已经从文件夹/ Users/ajeetganga /安装了jade,但它从未尝试过,它仍然有效。 :)

+0

我手动创建快捷项目并在eclipse上运行时,有同样的错误堆栈跟踪。我按照你在项目的根源建议的方式安装了玉器,它工作正常。 – Venkat 2014-03-19 02:10:31

1

我在用Emacs编辑一个jade文件后得到了同样的问题。解决方案很简单:找到jade〜文件并将其删除。

18

我在nodechool expressworks教程中遇到了同样的问题。我解决它通过在的package.json的依赖关系:

NPM安装--save表达玉

+0

这帮了我。读完之后,我意识到我已经从项目的package.json中删除了jade模块,这就是为什么没有找到它。加了回来,做了npm更新,并且一切正常。 – bearvarine 2016-03-22 14:27:54

+0

它也帮了我:) – AnNaMaLaI 2016-08-15 00:41:08

+0

谢谢你。在使用Team Treehouse学习Node.js时,他们对Jade(现在改名为Pug)进行了一整段讨论,并尝试通过一系列迭代试图使其发挥作用。学过的知识。 – 2016-08-19 02:10:29

0

我有同样的问题(玉装载机在我的打字稿+的WebPack项目)。我通过将jade-loader安装为peer-dependency来解决它。