Articles of 模块

Node.JS的插件系统

我目前正在使用Express来处理Node.JS中的一个大型应用程序。 我希望能够做到即插即用,所以我开始编写我自己的小插件系统,其文件结构如下所示: root/ | plugins.json # configures all plugins | plugins # contains all plugins | | MyPlugin # contains MyPlugin | | | MyPlugin.js # defines Application hooks for MyPlugin | | | … MyPlugin/当然也包含路由,控制器,视图,特定的资源等。 app将调用MyPlugin实例的标准挂钩是: moduleInit(app) # before starting the server or module has been loaded (if server is already running at module […]

为什么我们需要传递module.exports作为参数,因为我们已经将模块作为parameter passing了?

我一直在浏览一些关于Node.js的在线教程。 我所理解的是,在使用require(./file-path)函数时,节点获取该文件的内容并包装在一个即时调用函数 (function(exports, require, module, __filename, __dirname) { // content }()) 我明白exports和module.exports之间的区别。 这就是我在互联网上看到的关于search上述问题的全部内容。 但是,我的问题是,为什么我们需要将module.exports和module传递给包装IIFE? 我们可以单独传递模块,然后从中获取module.exports 。 这样做有什么好处吗? 通常,当我们将一个对象传递给一个函数时,我们不必另外传递object.property 。

如何在node.js中使用原型

我在nodejs上编写我的第一个模块。 我需要从谷歌cachingparsing我的网站。 post是桌子的地图。 当我尝试使用这个模块,我有这个错误:“types错误:不能设置未定义的属性”原型“如何解决这个错误?这是我的代码: module.exports = function Post(documentDOM,options) { this.opts = $.extend({id:0,author_id:0},options); this.doc = documentDOM; this.post = { id: 0, name: '', alt_name: '', notice: '', content: '', author: '', author_id: 0, }; } module.exports.Post.prototype = { init: function() { this.post.id = this.opts.id; this.post.author_id = this.opts.author_id; }, content: function() { content = this.doc.find('.fullnews-content').html(); if(!content.length) content […]

为什么这个JavaScript代码(RequireJS和Node.js的模块模式)工作?

由于我对RequireJS和Node.js的理解有限(通常加上JavaScript),我通常会看一些知名的JavaScript库的来源。 每当我看到这样的事情: ( // Wrapping function (root, factory) { if (typeof exports === 'object') { // Node.js var underscore = require('underscore'); var backbone = require('backbone'); module.exports = factory(underscore, backbone); } else if (typeof define === 'function' && define.amd) { // Require.JS define(['underscore', 'backbone'], factory); } }(this, function (_, Backbone) { // Factory function, the implementation […]

Nodejs:如何处理对象之间的事件监听?

我目前有问题,我有一个对象,应该听另一个对象。 问题是:我应该如何处理订阅? 目前,我只知道两种可能的方式: 与注册人: var Registrator = function() { this.listener = new Listener(); }; Registrator.prototype.register = function(subsriber) { var self = this; subscriber.on('event', function(info) { self.listener.doSomething(info); }); }; 在构造函数中: var Subscriber = function() { var listener = require('./instanced-listener'); this.on('event', function(info) { listener.doSomething(info); }); }; 正如你所看到的,两种方法都不是那么简洁。 还有另外一种模式可以用来解决这个问题吗? 问候 PS: 如果这个例子看起来太抽象了,这里是来源: https://github.com/bodokaiser/documents/blob/master/lib/repository.js 检查构造函数,看看我的不快:)

如何在Node中发送OAuth请求

我想访问node.js中的WS REST API。 我有oauth_consumer_key和oauth_token以及API端点。 oauth_signature_method是HMAC-SHA1。 如何在Node中发送OAuth请求? 有没有一个模块/库来生成请求标头? 我期望的是一个function,如: var httprequest = createRequest(url, method, consumer_key, token); 更新10/14/2012。 添加解决scheme。 我使用下面的代码。 var OAuth = require('oauth').OAuth; consumer = new OAuth('http://term.ie/oauth/example/request_token.php', 'http://term.ie/oauth/example/access_token.php', 'key', 'secret', '1.0', null, 'HMAC-SHA1'); // Get the request token consumer.getOAuthRequestToken(function(err, oauth_token, oauth_token_secret, results ){ console.log('==>Get the request token'); console.log(arguments); }); // Get the authorized access_token with the […]

在模块内调用Node.js模块function

我正在尝试编写一个节点模块来清理我的代码,并将其分离到不同的文件中。 考虑下面的代码: module.exports = { Hello : function(request, reply) { return reply("Hello " + World()); }, World : function() { return "World"; } } 如果我导入上面的模块,并使用Hello函数作为特定路由的处理程序,我得到一个HTTP 500内部服务器错误。 如果我将Hello函数更改为,我将问题缩小到对World()的调用 Hello : function(request, reply) { return reply("Hello World"); } 然后,它工作正常,所以它似乎是从调出导出对象内的另一个函数绊倒 有谁知道为什么会发生这种情况,以及如何解决?

如何将variables传递到NodeJS模块?

在我的一个JS文件中包含另一个。 如何在包含的模块中设置variables? 我认为做这样的事情会起作用 var mymodule = require('mymodule.js'); mymodule.myvariable = 'test'; 然后在mymodule this.myvariable === 'test'; 但是这不起作用,它是undefined 。 将值传递给模块的各种选项有哪些? 我可以将variables作为参数添加到myModule中调用的每个函数中,但这并不理想。 有没有办法做到这一点没有全局variables,所以我可以在各种所需的模块独立设置variables,像这样? var mymodule1 = require('mymodule.js'); var mymodule2 = require('mymodule.js'); mymodule1.myvariable = 'test1'; mymodule2.myvariable = 'test2';

带有包含本地代码的外部模块的Node-Webkit

我正在使用node-webkit和一个名为edge的外部模块。 根据node-webkit文档,包含本机代码的模块必须使用nw-gyp重新编译为与node-gyp相反。 我能够重新编译没有错误,node-webkit似乎导入模块确定。 inheritance人我的代码。 我正在尝试使用的代码: var edge = require('edge.node'); var hello = edge.func(function () {/* async (input) => { return ".NET welcomes " + input.ToString(); } */}); hello('Node.js', function (error, result) { if (error) throw error; console.log(result); }); 在node-webkit中运行时会引发以下错误。 Uncaught TypeError: Object [object Object] has no method 'func' 如果把对象写出来console.log我可以看到: Object {initializeClrFunc: function} initializeClrFunc: function () […]

是否有一个Node.js等价于PHP的include,所以包含的代码可以访问父文件的variables?

我想将我的节点应用程序分成几个单独的文件,使其更模块化,更容易维护。 但是由于没有办法像在PHP等其他语言中那样直接将文件“包含”到当前parsing的文件中,所以我的“模块”或“单独文件”不会自动访问脚本中定义的“需要”他们。 我怎样才能做到这一点? 我正在考虑在我的单独文件中做这样的事情: module.exports = function(stuff) { //I now have access to 'stuff'. } 但是这有点麻烦。 我确定有人已经在我面前解决了这个问题,那么你有什么build议?