Articles of 方法

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并没有真正受到这个困扰,因为每个模块都是命名空间的。 有任何想法吗?

node.js – Object#<Object>没有方法'on'?

我在node.js上很新 我正在休闲EventEmitter示例。 以下是我的示例代码。 var server = require('http'); //var emitter = require('events'); server.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); setTimeout(function () { res.end('World\n'); }, 2000); res.write('Hello '); }).listen(3000, 'localhost'); console.log('Server(port : 3000) is started.'); server.on('connection', function (stream) { console.log('Now server is connected.'); }); server.once('connection', function () { console.log('The first connection.'); }); var callback = […]

强循环(loopback)类方法

理解Strongloop模型的行为有些困难。 有很多关于静态和远程方法的文档,但是一般的类方法呢? 比方说,我有一个用户模型,它有一个显示全名的方法: module.exports = function (User) { User.name = function () { return User.firstname + ' ' + User.lastname; } }; 我如何获取这个用户并使用这个方法? 我会想: var User = app.models.User; User.findById('559103d66d', function (err, model) { console.log(model.name()); }); 但显然,findById返回一个包含所有属性而不是实际模型的JSON对象。 那么如何在Strongloop中定义和使用模型方法呢?

自动方式导出每个function作为主要的方法

我只是创build一个包含许多函数的单个文件的节点模块,例如: function alpha () { return 'alpha' } function beta () { return 'beta' } function main () { return alpha() + beta() + 'gamma' } module.exports = main 这个问题是,我真正想要的是所有声明的函数(其他main )是main方法,如main.alpha (注意在这种情况下main不会是一个对象与原型)。 我想所有这些函数作为方法,所以我仍然可以导出一个functionmain并能够使用这个模块之外的main.alpha() 。 有了这个说我坚持与模块中的function,我创作他们的方式。 我可以进入并更改每个函数声明( function (.+) \( ) main.$1 = function (用我的文本编辑器(primefaces的)查找和replace正则expression式函数。 我创build的模块中有20个function,编辑所有的代码非常繁琐和复杂。 另一个问题是,每个函数的名字变得不那么容易识别,而不是一个很好的getFiles函数,我有一个不必要的long main.getFiles函数。 我期望的结果是这个效果(图1): function main () { return main.alpha() + […]

var与function,这对常量和方法更好

这是一个nodejs应用程序,也可能成为一个Chrome打包的应用程序。 以下哪一个更适合在应用程序中设置常量和方法? // HARDWARE SETTINGS AND SCALING FACTORS \\ function GPIO8() { this.sensorType = "I/O board"; this.name = "XYZ Co. 8 Channel USB GPIO Module"; this.info = "GPIO, 10 bit, 0-5V ADC (Analog to Digital Converter)"; this.voltSupply = 5.15; // Measure with multimeter and set this constant. this.vMin = 0; // lowest output voltage. this.vMax […]

Node.js / Javascript – 等到方法完成

我正在写一个蒸汽交易机器人,但我有一个问题,for循环不会等到for循环内部的方法完成。 所以代码不能正常工作。 for (i = 0; i < offer.itemsToReceive.length; i++) { console.log(offer.itemsToReceive[i].market_hash_name); community.getMarketItem(appid.CSGO, offer.itemsToReceive[i].market_hash_name, function(err, items) { if (err) { Winston.error("Error getting Marketprice"); } else { var cacheItemPrice = items.lowestPrice; totalValue += items.lowestPrice; Winston.info("Item " + offer.itemsToReceive[i].market_hash_name + " is " + items.lowestPrice + " Cents worth"); if (items.lowestPrice <= minValue) { minValue = items.lowestPrice; […]

Node.js – asynchronous方法调用问题

我正在使用node.js构build一个应用程序,并希望确认一个有关模块和节点asynchronous性质的问题。 如果我有一个模块,如: var email_list = function() { //perform some database query or calculation } exports.email_to = function() { email_list.forEach(function(email) { console.log(email); }); }; 而在另一个文件中,我打电话给我的email_to方法,在我的email_to函数被调用之前函数email_list被调用了吗? 如果没有,有没有办法保证email_to函数在email_list函数email_list调用? 在此先感谢〜

Express.js:对象#<IncomingMessage>没有方法“调用”

安装Express.js后,我在节点上写了这个: var express = require('express'), app =express.createServer(); app.configure(function(){ app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(express.router); }); app.get('/', function(req, res){ res.send('hola mundo'); }); app.listen(3020); console.log('Hola Mundo'); 当我启动应用程序时,我可以看到“Hola Mundo”的消息,但是当我提出请求时,我收到了这个消息: TypeError: Object #<IncomingMessage> has no method 'call' at Object.router [as handle] (/home/alumno/Escritorio/nodejs/node_modules/express/node_modules/connect/lib/middleware/router.js:96:6) at next (/home/alumno/Escritorio/nodejs/node_modules/express/node_modules/connect/lib/http.js:203:15) at Object.bodyParser [as handle] (/home/alumno/Escritorio/nodejs/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:88:61) at next (/home/alumno/Escritorio/nodejs/node_modules/express/node_modules/connect/lib/http.js:203:15) at Object.methodOverride [as handle] (/home/alumno/Escritorio/nodejs/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:35:5) at next (/home/alumno/Escritorio/nodejs/node_modules/express/node_modules/connect/lib/http.js:203:15) at […]

Node.js:methodOverride不起作用

在服务器端: var express = require('express'); var app = express(); app.listen(8000); app.configure(function(){ app.use(express.methodOverride()); }); app.put('/update', function (req, res) { res.send("update!"); }) 我想testingput方法 在客户端: <form action="/update"> <input type="hidden" name="_method" value="put"/> <input type="submit" value="submit"> </form> 但结果是 Cannot GET /update?_method=put 所以,我的代码有什么问题?

JavaScript和NodeJS:从不同的JS文件调用方法

我正在使用NodeJS包含一个js文件到另一个。 下面我显示我的文件。 这两个类都包含两个对象的构造函数。 我想从ClassA中调用ClassB中的一个方法。 在ClassA中,我需要ClassB(如下所示),我试图创build一个新的B类实例,然后调用B类的方法获得以下错误: cB.get(); ^ TypeError: Cannot call method 'get' of undefined at Object.<anonymous> (/home/—/ClassA.js:12:4) //ClassA.js var imported = require('./ClassB'); function ClassA() { //…. } var cA = new ClassA(); var cB = imported.ClassB(); cB.get(); //ClassB.js function ClassB() { var myVar = 'test'; function _get () { return myVar; }; this.get = function […]