Javascript 错误:找不到模块';翡翠';
我是NodeJS的新手。我使用复合Js创建了一个crud操作 该应用程序一直工作正常,直到我尝试警告一个值,之后我得到了错误Javascript 错误:找不到模块';翡翠';,javascript,node.js,pug,railway.js,compoundjs,Javascript,Node.js,Pug,Railway.js,Compoundjs,我是NodeJS的新手。我使用复合Js创建了一个crud操作 该应用程序一直工作正常,直到我尝试警告一个值,之后我得到了错误 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 (m
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.
- }
嗯,您几乎可以肯定有
require('jade~')
,只需输入require('jade')
。检查您的expressapp.engine('jade')
线路,作为另一个可能的嫌疑人。问题在于我正在处理的Fedora-16
。编辑ie时创建的临时文件“index.jade~”未清除,因此出现了问题
在Fedora-16中,可以通过删除临时文件“index.jade~”或将节点模块“jade”重命名为“jade~”来解决该问题,但“找不到模块“jade”,而不是“jade~”;我很确定我已经完成了“npm安装jade”。经过一段时间的研究,我发现我的问题是因为我在全球安装express,而jade在本地安装,参考此帮助,我解决了我的问题。。我把它贴在这里,想它可能会帮助一些和我面临同样问题的人:)对我来说,这是一个不同的问题。 我在本地和全球安装了jade和express,希望他们能找到对方,但express仍在抱怨jade 我的错误如下所示:
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安装的默认位置。。
所以,作为一个解决办法,我在下面的文件夹中安装了jade
cd /Users/ajeetganga/node_modules/
npm install jade
我认为即使我从/Users/ajeetganga/文件夹中安装了jade,它也会起作用,但从未尝试过。:) 在用Emacs编辑jade文件后,我遇到了同样的问题。解决方法很简单:找到jade~文件并将其删除。我在nodeschool Express Works教程中遇到了同样的问题。我通过在package.json中包含依赖项解决了这个问题:
npm install --save express jade
我也有同样的问题(我的typescript+webpack项目中的jade loader)。我通过将jade loader安装为对等依赖项解决了这个问题。您可能已经将文件命名为
server.js
或app.js
。有限的可用证据有力地指出了一个非常简单、基本的打字错误。在你的文件中搜索jade~
并修复它,然后继续你的生活。在添加警报之前,您认为它工作正常,但您肯定被误导了。node.js中没有警报,浏览器中发生的事情不会导致node找不到jade模块。应用程序中没有jade~Lysons:没有jade~。我搜索了整个文件来更新这个问题。发布你的.js
文件。您的.jade
文件是不相关的。@Lysons您能指定哪个文件吗?在手动创建express项目并在eclipse上运行时,我有相同的错误堆栈跟踪。我按照您的建议在项目的根本上安装了jade,它成功了。这对我很有帮助。阅读之后,我意识到我不知何故从我的项目的package.json中删除了jade模块,这就是为什么找不到它的原因。把它加回来,做了npm更新,一切都正常了。它也帮了我:)谢谢你。他们使用TeamTreehouse学习Node.js,他们有一整节关于Jade(现在改名为Pug)的内容,并经过了一系列迭代,试图让它发挥作用。经验教训。令我和许多其他人惊讶的是,这实际上对我有效,而不是默认的解决方案。
npm install --save express jade