如何将节点模块导入到我的backbone.js应用程序中?

我试图包围node.js模块,要求,以及如何在backbone.js应用程序中使用模块。

现在我正在使用以代码开头的快速服务器:

var express = require('express'), http = require('http'), config = require("./config"), oauth = require("oauth"), bcrypt = require("bcrypt"), sqlite = require("sqlite3"), _ = require("underscore"), exec = require('child_process').exec, app = express(), server = http.createServer(app).listen( process.env.PORT || config.port); 

然后我有一个定义所有视图和模型的router.js文件。

看起来像这样的config.js文件:

 require.config({ baseUrl: '/', paths: { 'util' : 'assets/lib/util', 'jquery' : 'assets/lib/jquery', 'underscore' : 'assets/lib/underscore', 'backbone' : 'assets/lib/backbone' }, shim: { 'underscore' : { exports : '_' }, 'backbone' : { deps : ['underscore', 'jquery'], exports : 'Backbone' }, 'bootstrap' : { deps : ['jquery'], exports : 'Bootstrap' }, 'parsley' : { deps: ['jquery'] }, 'socket' : { deps : ['underscore', 'jquery'], exports : 'socket' } } }); require(['main']); 

我的router.js文件开始像这样(我拿出了一堆代码)

 define(['app','jquery','underscore','backbone',], function(app, $, _, Backbone){ var WebRouter = Backbone.Router.extend({ routes: { "": "index" }, initialize: function(options) { } return WebRouter; }); 

我只需要把我的main.js文件放在一个好的位置

 require([ "app", "router", "models/SettingsModel" ], function(app, WebRouter, SettingsModel) { // Just use GET and POST to support all browsers Backbone.emulateHTTP = true; app.router = new WebRouter(); Backbone.history.start({ pushState: true, root: app.root }); 

});

好吧,现在来了棘手的部分。 我想要使​​用一个节点模块,特别是在https://github.com/BoyCook/TwitterJSClient上find的twitter-js-client模块

所以在我的TwitterView.js中,我可以运行下面的代码:

 var twitter = new Twitter(config); 

我试过的步骤

  • 把twitter-js-client放在我的package.json中,运行npm install,安装正常但我不知道如何访问模块
  • 手动运行npm install twitter-js-client,由于上述原因无法运行
  • 手动将关键字“twitter”链接到npm模块的Twitter.js文件
    • 这工作,但后来我得到一个错误,如“节点模块oauth尚未加载使用_。需要上下文”
    • 我注意到在twitter.js文件中,它需要一些包括oauth的包

我对Node / backbone有点新鲜,我正在寻找Node,Require和Backbone如何与其他人共同工作的说明。 如果有人对如何构build这个应用程序有任何技巧或build设性的批评,我将不胜感激。 如果在骨干视图中有任何解决scheme来加载NPM模块,我将不胜感激。 我需要一个像鲍尔一样的包pipe理器吗? 我没有与JQuery的问题,并强调,但我似乎无法加载这个NPM模块。

谢谢!

你可以使用browserify 。

  • 用require语句写你的客户端脚本。

     var Twitter = require('twitter').Twitter; 
  • 运行您的脚本browserify生成一个bundle.js文件

  • 将结果文件包含在您的页面上。

     <script src="bundle.js"></script>