9

ノードjsは初めてです。複合 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 (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

7 に答える 7

27

nodeschool Expressworks チュートリアルでも同じ問題が発生しました。package.json に依存関係を含めることで解決しました。

npm install --save express jade
于 2015-02-15T04:43:17.997 に答える
18

私はまったく同じ問題を抱えていますが、「jade~」ではなく「モジュール「jade」が見つかりません」。そして、すでに「npm install jade」を実行したと確信しています。しばらく調査した後、このヘルプhttps://www.openshift.com/forums/express/nodejs-and-jade-error-cannot-を参照して、jade がローカルにインストールされている間に Express をグローバルにインストールするため、問題が発生することがわかりました。 find-module-jade私は私の問題を解決しました..私と同じ問題に直面している他の人を助けるかもしれないと考えてここに投稿します:)

于 2013-07-25T03:47:53.710 に答える
11

私にとって、これは問題が異なることが判明したことでした。私は 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 をインストールしたとしてもうまくいくと思いますが、試したことはありません。:)

于 2013-10-12T19:00:09.270 に答える
5

The issue was with Fedora-16私が取り組んでいたこと。編集中に作成された一時ファイル、つまり「index.jade~」がクリアされなかったため、問題が発生しました。

Fedora-16 では、一時ファイル「index.jade~」を削除する、ノード モジュール「jade」の名前を「jade~」に変更することで、この問題を解決できます。

于 2013-03-18T06:03:29.433 に答える
2

ええと、ほぼ間違いなく、必要require('jade~')な場所に単純なタイプミスがありますrequire('jade')app.engine('jade')別の可能性のある容疑者として、エクスプレスラインを確認してください。

于 2013-03-08T08:25:11.440 に答える
2

Emacs で jade ファイルを編集した後、同じ問題が発生しました。解決策は非常に簡単です: jade~ ファイルを見つけて削除します。

于 2014-07-13T06:04:36.187 に答える
0

同じ問題がありました(typescript + webpackプロジェクトのjade-loader)。jade-loader をピア依存としてインストールすることで解決しました。

于 2016-09-26T05:30:51.410 に答える