javascript - 如何将 Node 模块导入我的 backbone.js 应用程序?

标签 javascript node.js backbone.js requirejs

我正在努力研究 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);

然后我有一个定义所有 View 和模型的 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;
});

我将放入我的 ma​​in.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 });

});

好了,棘手的部分来了。我想使用 Node 模块,特别是在 https://github.com/BoyCook/TwitterJSClient 找到的 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 文件
    • 这行得通,但随后出现错误,例如“Node 模块 oauth 尚未加载,但使用 _.require for context”
    • 我在 twitter.js 文件中注意到,它需要一些包,包括 oauth

我对 Node/backbone 有点陌生,我正在寻找关于 Node、Require 和 Backbone 如何相互协作的说明。如果有人对如何构建此应用程序有任何建议或建设性批评,我将不胜感激。如果有任何在主干 View 中加载 NPM 模块的解决方案,我将不胜感激。我需要像 Bower 这样的包管理器吗?我对 Jquery 和下划线没有任何问题,但我似乎无法加载此 npm 模块。

谢谢!

最佳答案

您可以使用 browserify .

  • 使用 require 语句编写客户端脚本。

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

  • 在您的页面上包含生成的文件。

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

关于javascript - 如何将 Node 模块导入我的 backbone.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21866235/

相关文章:

javascript - 在 Three.js 中有没有一种方法可以产生随时间慢慢消失的轨迹?

php - 如果我使用 php 重定向,javascript 警报不起作用?

javascript - backbone.js 中的 View 和附加表行

javascript - 为什么 backbone 不使用 module.exports?

javascript - Backbone Undefined 不是函数错误

javascript - 可查看的内容按设定的时间间隔更改 - 但之前的内容会在之后闪烁到 View 中

javascript - 当宽度低于最小限制时限制 Electron 应用程序调整大小

node.js - 声明一个实现接口(interface)的函数

node.js - 是否有可能在 Mongoose 中有一系列可选的子文档模式

javascript - 什么时候在 Nodejs 中使用匿名函数?