Articles of javascript

迭代每个元素的数组运行asynchronous任务

我有一个项目的列表,我想在每个项目上运行一个asynchronous任务。 我想同步,所以每个元素将被处理,一旦前面的元素已经完成。 我到目前为止所尝试的是: function processItems(items) { var i = 0; while(i < items.length) { asyncFunc(items[i], function() { i++ }); // asyncFunc takes a callback parameter } } 然而这个循环永远(我相信i在callback函数中超出了范围)。 有没有更好的方法来实现这一目标?

如何从ModelA.js中调用ModelB.js的方法?

我正在使用loopback 2.0。 我用yeoman生成器生成了我的模型,并为每个模型添加了一个js文件来扩展它的行为。 如何在ModelB中调用ModelA中的方法? 例 文件夹结构: /common /models Car.json Car.js Engine.json Engine.js … Car.js: module.exports = function(Car) { Car.drive = function(destination, fn) { … } … }; 的engine.js: module.exports = function(Engine) { Engine.doSomething = function(something, fn) { // *** Here is where I want to invoke a method from the Car.js var loopback = require('loopback'); […]

MongoDB:find({…})的真相。limit(#)

在MongoDB中, .find({…}).limit(#)真的限制了查询的数量吗? 我的意思是,当你做db.collection.find(condition) ,是不是已经浪费了计算能力来查询所有符合给定条件的结果呢? 如果是这样,那么在添加.limit()之后,只需从查询结果中.limit()不需要的元素? 非常感谢澄清这一点!

是否有可能修改错误的构造函数,以便它包含错误被引发的上下文?

叫我疯了,但我想要所有的JavaScript错误揭露了这种情况,当他们被抛出。 很难用英文解释,更容易解释我想要的代码: var Person = function() { this.name = 'Chuck'; } Person.prototype.speak = function() { throw new Error('muted!'); console.log('My name is', this.name); } var person = new Person(); try { person.speak(); } catch(error) { console.log(error.context.name, 'could not speak.'); } 是否有可能自动填充error.context属性,使上面的代码将工作? 我打开任何疯狂的技巧,并使用下一个版本的JavaScript或node.js。 编辑:我想这样做,而不使用自定义错误。 这样我可以捕获任何非自定义错误,仍然可以访问context 。

Express jsredirect – 不会更改url,也不会加载静态文件

我在节点js上使用express js作为我的应用程序的REST接口。 我也为我的客户端页面使用jQuery Mobile。 如果用户尝试input他们不被允许或不能访问的位置,我正在使用redirect来更改页面。 出于某种原因,url不会更改,因此它不会加载css和js文件。 我在另一个地方看到这是由于jQuery Mobile而发生的,他们build议使用rel=external 。 我不知道如何将它与快速接口一起使用。 任何build议来评论我的问题?

错误 – 'bower install'失败,退出状态为1

在通过angular手机教程时 ,我在运行npm install命令后立即发现了以下错误: 我也查看了日志文件,但它或多或less重复了控制台中显示的相同错误消息。 我错过了什么?

我怎样才能将mongoose子文档分成单独的文件?

在region.server.model.js我想有 var RegionSchema = new Schema({ name: {type: String}, user: {type: Schema.ObjectId, ref: 'User'}, bases: [BaseSchema] }); mongoose.model('Region', RegionSchema); 而在另一个名为base.server.model.js文件我想要 var BaseSchema = new Schema({ name: {type: String}, region: {type: Schema.ObjectId, ref: 'Region'} }); mongoose.model('Base', BaseSchema); 它正在崩溃 bases: [BaseSchema] ^ ReferenceError: BaseSchema is not defined 我无法弄清楚如何在mean.js关联或链接这两个文件。 谢谢!

Sails js – 创build一个资产的副本

我们正在考虑将我们的项目移植到Sails.js。 我们的静态资产相当大 – 超过3 GB。 所以,这已经造成了一个严重的限制,因为它使我们的应用程序的规模翻了一番。 我们可以修改Sails js来防止这种默认行为,或者可以推荐一些其他的框架吗?

Nodejsstream(错误:发送后无法设置标题)

我正在尝试从braintree服务器上构build一个API。 参考这个文档https://developers.braintreepayments.com/javascript+node/reference/general/result-handling/search-results 要从服务器访问所有事务,我必须返回一个节点stream。 前 app.get('/project', function(req, res) { if(req.user) { var stream = gateway.transaction.search(function (search) { search.customerId().is(req.user.id); }); stream.on("ready", function () { console.log(stream.searchResponse); }); stream.on("data", function (data) { res.json(data) // can't set headers after they are sent. }); } }); 我知道一个stream以块的forms返回数据,所以上面的res.json()很可能被多次调用导致Error: Can't set headers after they are sent 。 所以我的问题是我怎么能发送数据到客户端在一个块? nodejsstream是混淆我,我会读更多的关于它,但了解如何将数据发送到客户端而不重新发送标头将是很好的。

试图了解nodeJS和javascript对象

我试图写一个对象的快速示例,以及该对象的一些原型,并且从代码中获得了一些意想不到的结果。 我正在处理两个文件,index.js和cards.js。基本的想法是实例化一个名为“deck”的新对象,然后调用该对象上的某些方法。 这是我的代码 cards.js //constructor function cardsClass() { this.cards = [ { suit: 'heart', number: 1, name: 'ace' }, { suit: 'heart', number: 10, name: 10 }, { suit: 'heart', number: 11, name: 'jack' }, { suit: 'heart', number: 12, name: 'queen' }, { suit: 'heart', number: 13, name: 'king' } ]; } //class method […]