使用jade的MEAN堆栈,在哪里放置特定于JS的页面?

时间:2014-01-04 23:23:13

标签: node.js express pug

我在MEAN堆栈上运行了一个应用程序。我正在使用jade模板,并想知道在哪里放置页面特定的JavaScript。现在我的目录看起来像:

app/
 |- public
 |   |- js
 |   |- css
 |- views
 |- routes
 |- schemas

我的一个观点signup.jade,我需要包含一些javascript:

$(function() {

    $.validator.addMethod("passwordStrength", function( value, element ) {
        console.log("here")
        var result = this.optional(element) ||
                        /^[a-zA-Z0-9- ]*$/.test(value) &&
                        /\d/.test(value) &&
                        /[a-z]/i.test(value);
        if (!result) {
            var validator = this;
        }
        return result;
    }, "Your password must contain at least one number and one special character.");

    $('#signup').validate({
        rules: {
            email: {
                required: true
            },

            password: {
                required: true,
                passwordStrength: true,
                minlength: 6
            },

            "repeat-password": {
                required: true,
                passwordStrength: true,
                minlength: 6
            }
        }
    });
});

放置这个的最佳位置在哪里?我是否为app / public / js中的每个页面创建了一个javascript文件?

如果有人对MEAN文件结构最佳实践有任何好文章,那么这些也将受到赞赏,谢谢!

2 个答案:

答案 0 :(得分:0)

根据我的经验,如果这样的脚本只使用一次,那么将脚本保存在相应的玉视图中是完全可以的。

然而,您可以使用帮助程序创建目录并将此脚本移动到此目录(只需创建一个普通的js文件),然后通过添加变量并将其值设置为文件内容将其添加到页面上。它可能看起来更干净(并允许你将js lint应用于助手等)但需要更多的工作。

答案 1 :(得分:0)

enter image description here 以下是我的代码的组织方式。我们正在使用自耕农的角度全栈发生器。在我提供的图像中,home.html是部分视图,其控制器是home.js.我建议你为你创建的每个html部分页面创建一个单独的文件。事实上,一个好的角度页面应该有用户定义的指令,并且各自的控制器将范围挂钩到指令和管理已提供的范围的指令。它保持整洁/简单/美丽。如果你有机会并且能够负担得起,那就购买ng-book。它很漂亮,甚至angular's guide也很棒。