Tag: 模块

在尝试从已经初始化的伪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 […]

节点js elementtree必需get找不到模块'sax'

我正在尝试在我的节点js服务器中使用elementtree,但是以下消息是在服务器启动时生成的 Cannot find module 'sax' 我不得不从拉链安装elementree,我做错了什么? 这些是我的声明 var cache = require('./node_modules/node-cache'); var elementTree = require('./node_modules/node-elementtree'); 这是我的文件夹结构 module\node_modules\node-cache module\node_modules\node-elementtree 我的服务器js脚本驻留在\module

NodeJS:使用另一个模块的module.exports函数

简单的例子: file1 module.exports.foo = function(obj) { module.exports.obj = obj; } file2 file1 = require("file1") var something = {a: "a"}; file1.foo(something); //export "something" being a part of file2 上面的例子不起作用。 我想要的基本上是一个module.exports帮手,因为我计划了一些帮助整个对象“导出”。 谢谢

NodeJS – 有时我的导出方法不可用

这很奇怪… 我有一个模块(tools.js),有一些我喜欢使用的方便的函数,比如stemming或者其他东西,它们以通常的方式导出: tools.js var stem = function(str) { // do some stuff return str; } module.exports = { stem: stem } 而我在其他模块中使用它,就像你所期望的那样: var tools = require('tools.js'); var someProcess = function(str) { return tools.stem(str); } 这有效。 其他时候,我得到一个错误,如: TypeError: Object #<Object> has no method 'stem' 我希望如果我没有出口我的function。 但是我有,因为这个完全相同的代码工作正常,我上次运行它,我甚至没有重新启动过程。 一旦中断,我可以重新启动进程,它会很好,但过了一段时间(通常在其他函数被调用后),它会中断。 几乎就像有一些命名空间的事情正在发生,它正在被覆盖。 但我认为Node并没有真正受到这个困扰,因为每个模块都是命名空间的。 有任何想法吗?

节点js fs模块说对象没有方法appendFile

我正在build立一个节点js应用程序(用于学习),我将每个操作logging到一个名为log.txt的文件中 logging器模块具有以下代码: var fs = require('fs'); function write(data,filename) { var entry = 'Time: '+new Date(); if(filename !=null || filename != undefined) entry = entry+'\n\tFile: '+filename; if(data !=null || data != undefined) entry = entry+'\n\tMessage: '+data; entry = entry+'\n'; fs.appendFile('./log.txt',entry,function(err){ if(err){console.log('Log NOT Appended with data:\n\t'+entry);} else{console.log('Log Appended with data:\n\t'+entry);} }); } exports.write = write; 现在在我的app.js我要求它作为: var […]

NodeJS从基于自定义模块的匿名函数中获取对象

我第一次尝试NodeJS和这个服务器是真棒,但我有一个小问题,我不明白我在做什么错:( 我有两个文件:server.js和rules.js rules.js阅读rules.html必须将他的内容返回到像这样的对象: {'title':'Title','msg':'<div id="test">[…]</div>'} Rules.js exports.getRule = function(data) { var fs = require('fs'); var rulesPath = __dirname + '/views/rules.html'; fs.readFile(rulesPath, {encoding:'utf-8'}, function(error, data) { if(!error){ var rules = {"title":"Règles du chat","msg":data}; } else { var rules = {"title":"Erreur lors de la récupèration des règles du chat","msg":"<div id=\"error\">Une ereur s'est produite lors de la récupération […]

在Node.js中创build一个模块的副本,而不是一个实例

这将是我在stackoverflow上的第一个问题,希望这个顺利。 我一直在做一个游戏(使用corona SDK),我使用Node.js编写了一个小型服务器来处理我的客户端之间的一些聊天消息,没有问题。 现在我正在扩大这个servlets器来做更多,我想要做的是创build一个外部文件(模块),将持有一个对象,具有所有的function和variables,我需要代表一个房间我的游戏“大厅”,有两个人可以相互对打,每次我有两个玩家准备玩,我会为他们创build一个空房间的副本,然后在那个房间初始化游戏。 所以我在我的主项目文件中有一个数组,每个单元格都是一个房间,我的计划是将模块导入该数组,然后我可以在特定的“房间”中初始化游戏,玩家将玩,游戏会继续下去,一切都会好的…但是…我在main.js中的代码: var new_game_obj = require('./room.js'); games[room_id] = new_game_obj(); games[room_id].users = [user1_name,user2_name]; 现在,在我的房间里,我有这样的东西: var game_logistics = {}; game_logistics.users = new Array(); game_logistics.return_users_count = function(){ return game_logistics.users.length; } module.exports = function() { return game_logistics; } 到目前为止这么好,这工作就好,我可以简单地去: games[room_id].return_users_count() 我会得到0或1或2,这当然取决于有多less用户join了这个房间。 一旦我打开一个新的房间,问题就开始了,因为Node.js会将我创build的模块实例化,而不是复制它,如果我现在创build一个新房间,即使我删除和/或删除旧房间,它会提供我已经更新的旧房间的所有信息,而不是一个新的洁净室。 例: var new_game_obj = require('./room.js'); games["room_1"] = new_game_obj(); games["room_2"] = new_game_obj(); games["room_1"].users = ["yuval","lahav"]; […]

节点无法在IIS中find模块,可以从提示中find

我通过npm install <module>安装了一些模块,当我在命令提示符下运行node时,我可以访问它们,但是当我使用iisnode在IIS下运行应用程序时,出现如下错误: Application has thrown an uncaught exception and is terminated: Error: Cannot find module 'formidable' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (C:\Program Files\iisnode\www\helloworld\hello.js:3:18) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) 到底是怎么回事? 如果我使用iisnode是否有另外一种方法来安装模块? 这是我的项目web.config文件: <configuration> <system.webServer> <!– indicates […]

访问节点模块中的私人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没有定义;

npm链接多个本地(相互依赖)模块

我有3个node.js模块, A , B和C 所有这些都是私人的git回购。 A取决于B取决于C Git克隆A和做npm install就像一个魅力。 但是,当在模块A上编码时,我也想在B (和C )上工作。 后两者也是git克隆的。 而npm link ../pathto/B效果很好。 而由于B依赖于C , npm link负责将C安装到B/node_modules/C 。 它是一个静态文件克隆,被B 。 所以当做npm link ../pathto/C ,会产生A/node_modules/C (是一个符号链接)。 但是,这就是问题, B将使用它的静态克隆,而不是我已经链接到A/node_modules/C A/ … node_modules/ B -> B/ C -> C/ B/ … node_modules/ C/ … C/ … 有没有人有解决这个问题的想法?