【问题标题】:Using brunch with node.js modules使用带有 node.js 模块的早午餐
【发布时间】:2013-11-03 04:28:56
【问题描述】:

我想为我的客户端早午餐构建和我的节点服务器使用相同的主干模型,节点的模块系统与默认情况下使用的 commonjs 模块几乎相同,但我需要一些思考来设置有什么不同。

/server.js

Backbone = require('Backbone');
_ = require('underscore');
var MyAppModel = require('./app/models/MyAppModel');
var app = new MyAppModel();

/app/models/MyAppModel.js

var PeopleCollection = require('../collections/PeopleCollection'); // NODE
var PeopleCollection = require('collections/PeopleCollection'); // BRUNCH

var MyAppModel = Backbone.Model.extend({

    initialize: function() {
        this.set('people', new PeopleCollection());
    }

});

module.exports = MyAppModel;

/app/collections/PeopleCollection.js

var PersonModel = require('../models/PersonModel'); // NODE
var PersonModel = require('models/PersonModel'); // BRUNCH

var PeopleCollection = Backbone.Collection.extend({
    model: PersonModel
});

module.exports = PeopleCollection;

/app/models/PersonModel.js

var PersonModel = Backbone.Model.extend({});

module.exports = PersonModel;

基本上唯一阻止我在服务器和客户端上使用相同文件的是需要路径。 我可以设置一个全局服务器,然后执行:

if (server)
    var PeopleCollection = require('../collections/PeopleCollection');
else
    var PeopleCollection = require('collections/PeopleCollection');

我猜应该可行,是否有更优雅的解决方案?

【问题讨论】:

    标签: node.js backbone.js brunch


    【解决方案1】:

    不需要使用绝对路径。 Brunch 支持相对路径。您可以使用:

    var PeopleCollection = require('../collections/PeopleCollection');
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-16
    • 2015-11-14
    • 2017-08-08
    • 2012-06-19
    • 2013-03-15
    • 2018-08-27
    • 2016-01-19
    • 1970-01-01
    相关资源
    最近更新 更多