0

ビューエンジンとしてJADEを使用してノードを使用します。「Node と Express を使用した Web 開発」という本に続いて、いくつかのページ テストを開始しようとしています。

次のエラーが表示されます:

Cannot call method 'ui' of undefined

mocha.ui を呼び出そうとすると

    58|                         script(type='text/javascript' src='/mocha/mocha.js')
    59|                         script(type='text/javascript' src='/chai/chai.js')
  > 60|                         -mocha.ui('tdd');
    61|                         -var assert = chai.assert;
    62|                         script(type='text/javascript' src='/qa/global-tests.js')
    63|                         -if(pageTestScript){

通話全体:

    //Page Tests + Global Tests
    -if(showTests){
        div(id="mocha")
        script(type='text/javascript' src='/mocha/mocha.js')
        script(type='text/javascript' src='/chai/chai.js')
        -mocha.ui('tdd');
        -var assert = chai.assert;
        script(type='text/javascript' src='/qa/global-tests.js')
        -if(pageTestScript){
            script(src= pageTestScript)
        -}
    -}

私のパス構造は次のとおりです。

node_modules
->chai
->->chai.js
->mocha
->->mocha.js

node_modules の可視性も設定されます。

app.use(express.static(__dirname + '/node_modules'));

firebug で確認すると、次の css にアクセスできます。

link(rel='stylesheet', href='/mocha/mocha.css') 

js ファイルを別のフォルダーに移動しようとしたり、スクリプト呼び出しを変更したり、ググったりしました。

どうもありがとうございました。

4

1 に答える 1

2

mochascript タグを使用して変数として jade を使用できるようにしたいようです。フロントエンドとバックエンドの変数の間で混乱しているようです。使用している mocha 変数は、ノードによって提供されるバックエンド変数です。script タグの mocha.js とはまったく関係ありません。

-またはで始まる行の場合=、jade はこれらを評価し、サーバー側の値に置き換えます。スクリプト タグはブラウザで評価されます。それがするのは、次のようなものを変換することだけです

script(src="hello.js)

<script src="hello.js">

Jade は、script タグに記載されているスクリプトを実行しません。

ソリューション後に追加 (クライアントで mocha テストを処理):

-if(showTests){
    div(id="mocha")
    script(type='text/javascript' src='/mocha/mocha.js')
    script(type='text/javascript' src='/chai/chai.js')
    script(type='text/javascript').
        mocha.ui('tdd');
        var assert = chai.assert;
    script(type='text/javascript' src='/qa/global-tests.js')
    script(type='text/javascript').
        console.log('Test console output');
    -if(pageTestScript){
        script(src= pageTestScript)
    -}
    script(type='text/javascript').
        mocha.run();
-} 
于 2014-05-17T09:19:24.247 に答える