Articles of commonjs

CommonJS模块没有设置variables的值?

我在主文件中的init()函数工作得很好,但是当我把它放入一个单独的模块并且需要它时,显然它停止工作。 我在控制台中得到这个错误 Uncaught TypeError: Failed to set the 'value' property on 'AudioParam': The provided float value is non-finite. 看起来这可能是它的同步问题? 我怎样才能解决这个问题? //init.js file var initt = function () { octaveNumber = document.getElementById("octaveNum"); audioCtx = new (window.AudioContext || window.webkitAudioContext); osc = audioCtx.createOscillator(); volume = audioCtx.createGain(); filter = audioCtx.createBiquadFilter(); osc.connect(filter); volume.connect(audioCtx.destination); booleanVal = false; osc.frequency.value = dial.value osc.start(); […]

CommonJs模块系统中“module.exports”和“exports”的区别

在这个页面上( http://docs.nodejitsu.com/articles/getting-started/what-is-require ),它指出:“如果你想把exports对象设置为一个函数或一个新的对象,你必须使用module.exports对象“。 我的问题是为什么。 // right module.exports = function () { console.log("hello world") } // wrong exports = function () { console.log("hello world") } 我console.logged结果( result=require(example.js) ),第一个是[Function]第二个是{} 。 你能解释一下它背后的原因吗? 我在这里阅读这篇文章: module.exports vs在Node.js中导出 。 这是有帮助的,但没有解释为什么这样devise的原因。 如果直接返回出口的参考资料,会出现问题吗?

如何使用http发布上传的文件?

我如何在快速应用程序中做到这一点? 也就是说,张贴一个文件到Facebook: curl -F 'access_token=xyz' \ -F 'source=@file.png' \ -F 'message=Caption for the photo' \ https://graph.facebook.com/me/photos 我正在使用以下内容从repo中的示例上传文件: app.post('/', function(req, res, next){ req.form.complete(function(err, fields, files){ if (err) { next(err); } else { console.log('\nuploaded %s to %s' , files.image.filename , files.image.path); res.redirect('back'); } }); })

捆绑和混淆Common.JS项目的好方法?

绑定Common.JS项目,然后最小化和混淆捆绑的脚本是一个好方法? (该库旨在用于浏览器。) 我对Google Closure编译器有经验,但是我想我可能更喜欢Common.JS。 在项目中也会有一些Coffeescript文件,但是我可以通过将它们编译为Javascript来单独处理它们。

如果我可以在node-mysql的callback中做一个“require”,那么模块函数会被添加到callback作用域还是全局作用域?

我正在使用nodejs和node-mysql驱动程序。 我发现自己正在做重复的锅炉板,如 client.query(querystr,queryparams,函数callback(错误,结果,字段){ if (err){ do err related stuff } else { do success related stuff } } 在大多数情况下,一切都是直截了当的,重复的,除了在成功上发生的事情,这取决于查询和上下文的变化。 所以我想封装所有这一切在一个单一的function,并通过querystr,queryparams和成功function。 问题:我不能这样做,因为这是在callback中,我不能让查询引擎使用我的成功函数,即使我通过callbackparameter passing它。 所以我想我可以在callback中做一个“要求”,如果是的话,将“必需”模块的function添加到全局范围或callback范围? 我希望后者B.

在尝试从已经初始化的伪javascript类中修改“this”对象时遇到了很多麻烦

向下滚动到该post的底部可以看到解决方法。 这可能更容易,只是在源代码中解释与评论。 现在的问题是我不知道如何伪类一起工作来执行我正在尝试做的任务(在下面的代码中解释)。 代码被分解成3个文件:lead.js,router.js和db.js. 有相当数量的代码行,但大部分是评论。 [lead.js] var bcrypt = require('bcrypt'), validators = require('../lib/validators'), utility = require('../lib/utility'), document = {}; var Lead = module.exports = function (db) { // Save a reference to the database. this.db = db; // Reference initial document. // This is totally wrong, not sure how to 'send' a variable to the […]

如果一个nodejs模块将一个对象导出到另外两个模块,那么对一个下游模块中的该对象所做的更改会传播给另一个模块吗?

我最初在nodejs中有一个工作的应用程序,它将所有的代码放在一个文件中,使用构造函数和IIFE分成不连续的块。 为了提供明智的解耦和分离,我一直在试图重构程序,使每个块存在于不同的文件中,但我遇到了一个问题。 该scheme分为三个核心块: 初始化连接到Redis并返回redis客户端和dataStore对象的数据存储区构造函数。 function CreateDataStore(storePort, storeUrl, passwd) { var client , datastore; //create the redis client //create the datastore //exports return { "redisClient": client, "dataObject": createSiteUpdater("") }; } var dataStore = CreateDataStore("xxxx","xxxx","xxxx"); var client = dataStore.redisClient; var testResults = dataStore.dataObject; 使用redis客户端并将数据存储在数据存储区对象中的Websearch器构造器。 function CreateWebCrawler(){ //do some stuff //initialise robots.txt parser return function() { //crawl a […]

nodeJS / commonJS module.exports应该返回什么

我知道我可以将module.exports设置为对象或函数(在某些情况下还会返回一个对象)。 我也意识到使用module.exports和module.exports的区别和方法,所以不需要评论。 我也明白,无论返回什么都caching,并将在任何连续的呼叫require返回。 所以,如果我select返回一个函数,而不是一个对象,那么这可能意味着每一个需求都需要实际运行这个函数。 我想知道是否有任何事实上的标准,哪两个应该使用。 或者,如果没有这样的标准 – 当决定我的模块是否应该返回一个对象,一个函数或者更复杂的东西时,需要考虑什么? 我打算编写的模块预计将被用作快速应用程序的一部分,如果它很重要的话(也许有一个“快速/连接模块的本地事实标准”)。

NodeJS /浏览器交叉开发

我正在研究针对浏览器和NodeJS应用程序的库。 模块使用AMD惯例,它在理论上足够灵活,足以映射今天的任何情况。 源文件然后将被转换为工具分发给不同的平台 – 再次浏览器和NodeJS。 顺便说一下,有一个叫做uRequire的奇妙工具可以帮助我,但是我仍然不确定我的最佳select,所以我在这里要求相关的经验。 这里是我有的文件层次结构: – bower_components/ – eventemitter2/ … – lodash/ … – source/ – library/ – lodash.js -> ../../bower_components/lodash/dist/lodash.js – EventEmitter.js -> ../../bower_components/eventemitter2/lib/eventemitter2.js – Observable.js: define(["lodash", "EventEmitter"], function(Utility, EventEmitter) { function Observable(options) { … }; return Observable; }); 最后,浏览器和NodeJS双方的最大区别是: 浏览器端: EventEmitter实现只是被configuration为“library / EventEmitter”的eventemitter2浏览器模块。 EventEmitter端: EventEmitter从require("events").EventEmitter , events是本地包,不是本地文件或模块。 所以,我的问题是:我怎么可以有Observable对象与NodeJS工作没有大规模的修补? 我不知道如何使EventEmitter实现可用于我的模块,因为它不是一个本地模块(因为我不能写任何path映射),而且它不是直接模块本身,我们将使用,但它的“EventEmitter”属性… 任何帮助/思考,将不胜感激。 我相信很多人都跑了类似的情况,我很想知道他们要说什么!

访问节点模块中的私人function

我有一个通过在我正在构build的节点模块中export的function。 我希望能够在同一个模块中调用一个内部(私有)函数。 到目前为止,我有这样的东西: someModule.js var publicFunc = function(a, b) { var obj = {result: 'of some processing'}; return privateFunc(obj); } var privateFunc = function(obj) { /* proccessing */ return result; } exports.publicFunc = publicFunc; 当publicFunc调用privateFunc我得到: 参考错误:privateFunc没有定义;