Javascript 无法调用方法';用户界面';未定义的

Javascript 无法调用方法';用户界面';未定义的,javascript,node.js,pug,mocha.js,chai,Javascript,Node.js,Pug,Mocha.js,Chai,使用带有JADE的节点作为视图引擎。我只是想在读了一本名为“使用Node和Express进行Web开发”的书之后,开始一些页面测试 我收到以下错误: Cannot call method 'ui' of undefined 当我尝试调用mocha.ui时 58| script(type='text/javascript' src='/mocha/mocha.js') 59| scri

使用带有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
此外,还设置了节点_模块的可见性:

app.use(express.static(__dirname + '/node_modules'));
通过firebug进行检查,可以访问以下css:

link(rel='stylesheet', href='/mocha/mocha.css') 
尝试将js文件移动到不同的文件夹,更改脚本调用,谷歌搜索


非常感谢。

您似乎希望通过使用脚本标记将
mocha
作为变量提供给jade。您似乎混淆了前端和后端的变量。您使用的mocha变量是node提供的后端变量。它与脚本标记中的mocha.js完全没有关系

对于以
-
=
开头的行,jade会计算这些行并在服务器端用它们的值替换它们。在浏览器中计算脚本标记。它所做的只是转换一些类似的东西

script(src="hello.js)


从路由文件中的render语句将mocha作为变量传递。@AkashAgrawal:谢谢,解析mocha实例很有效。但是也可以通过脚本调用初始化它吗?不。您混淆了前端脚本调用。我会写一个完整的答案。如果“在解决方案后添加(在客户端处理mocha测试)”部分是为了在解决问题后显示代码,那么这属于答案,而不是问题本身。(这是标准的Stack Overflow编辑实践。)因此,请将其移动到一个答案,或者如果我对该部分的含义有误解,请解释该部分在那里做什么。非常感谢。
<script src="hello.js">
-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();
-}