我正在努力研究 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;
});
我将放入我的 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 });
});
好了,棘手的部分来了。我想使用 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/