Node.jsasynchronous库比较 – Q vsasynchronous

我已经使用kriskowal的Q库作为一个项目(网页刮板/人类活动模拟器),并已经熟悉了承诺,返回并解决/拒绝了它们,图书馆的基本asynchronous控制stream方法和错误捕获/捕获机制已经被证实必要。 我遇到了一些问题。 我的promise.then电话和我的callback有形成金字塔的不可思议的倾向。 有时候是为了确定范围的原因,有时是为了保证一定的事件顺序。 (我想我可以通过重构来解决其中的一些问题,但是我希望完全避免“callback地狱”)。 另外,debugging非常令人沮丧。 我花了很多时间console.log我的方式来错误和错误的来源; 在我终于find它们之后,我将开始在那里抛出错误,并以最终的promise.finally将它们捕捉到别的地方,但把错误定位在首位的过程是艰巨的。 另外,在我的项目中, 订单很重要 。 我需要按顺序做很多事情。 通常我会发现自己生成的函数数组返回promise,然后使用Array.prototype.reduce将它们链接到彼此,我不认为我应该这样做。 这里是我使用这种缩减技术的一个方法的例子: removeItem: function (itemId) { var removeRegexp = new RegExp('\\/stock\\.php\\?remove=' + itemId); return this.getPage('/stock.php') .then(function (webpage) { var pageCount = 5, promiseFunctions = [], promiseSequence; // Create an array of promise-yielding functions that can run sequentially. _.times(pageCount, function (i) { var promiseFunction […]

autoIncrement如何在NodeJs的Sequelize中工作?

Sequelize的文档没有提到autoIncrement 。 它只包括下面的例子: // autoIncrement can be used to create auto_incrementing integer columns incrementMe: { type: Sequelize.INTEGER, autoIncrement: true } 基于这个例子,我有以下代码: db.define('Entries', { id: { type: Seq.INTEGER, autoIncrement: true, primaryKey: true }, title: { type: Seq.STRING, allowNull: false }, entry: { type: Seq.TEXT, allowNull: false } } 现在,当我想创build一个条目,我想要做这样的事情: models.Entry.create({title:'first entry', entry:'yada yada yada'}) 但是,当我执行该代码时,我得到一个数据库错误: 列“id”中的空值违反了非null约束 […]

将expressjs绑定到特定的IP地址

如何将expressjs服务器绑定到特定的IP 就像是 app.listen(8888, '192.168.0.101'); 相当于nodejs: http.createServer(onRequest).listen(8888,'192.168.0.101');

根据关联进行search查找

我将如何使用Sequelize来查找关系中的列满足条件的所有人? 一个例子是find作者姓氏“希区柯克”的所有书籍。 书籍模式包含与作者表的hasOne关系。 编辑:我明白这可以做一个原始的SQL查询,但寻找另一种方法

Node.js,PHP,Javascript混淆

我完全失去了什么Node.js是所有关于这里是我的问题: node.js是一种可以代替PHP的新语言吗?它是一种能够/只能补充/补充PHP和其他Web语言来完成复杂任务的语言吗?

什么是在node.js项目中通常使用的index.js

除了一个很好的方式来要求一个目录中的所有文件( node.js需要文件夹中的所有文件? ),主要使用的index.js是什么? 它有一个“最佳实践”的工具吗?

什么时候应该将一个函数存储到variables中?

我现在正在学JavaScript,而且我不太明白什么时候写一个函数到variables中。 例如,以下两个代码块在Node.js中完全相同: var onReq = function(req, res) { res.write('Hello'); }; http.createServer(onReq).listen(3000); 和 function onReq(req, res) { res.write('Hello'); } http.createServer(onReq).listen(3000); 根据最佳实践,最好的方法是什么?为什么?

如何在node.js中存储process.env?

我想用“bar”存根process.env.FOO。 var sinon = require('sinon'); var stub = sinon.stub(process.env, 'FOO', 'bar'); 我很困惑。 我读了文件,但还是不明白。 sinonjs文档 sinonjs是一个例子,不sinonjs是好的。

电子应用程序与数据库

我正在开发一个使用primefaces的电子项目的应用程序,我想有一个轻量级的数据库与该应用程序一起使用。 到目前为止,我没有成功,也很沮丧。 请帮我找一个本地数据库。 我试图用sqlite3没有成功。 我无法build立它。 我使用电子v0.31.0,我认为在内部使用iojs v3.1.0,并导致sqlite3不能编译。

蓝鸟Promise.all – 多个承诺完成聚合成功和拒绝

今天有人用蓝鸟提出一个有趣的案例,处理多重承诺的最佳方式是什么,我们不想停止某个履行或拒绝,而是对检查最终结果感兴趣。 一个例子: var p1 = new Promise(function(f,r){ setTimeout(function(){ console.log("p1"); f("yay"); }, 100); }); var p2 = new Promise(function(f,r){ setTimeout(function(){ console.log("p2"); r(new Error("boo")); }, 200); }) var p3 = new Promise(function(f,r){ setTimeout(function(){ console.log("p3"); r(new Error("yay")); }, 300); }); var p4 = new Promise(function(f,r){ setTimeout(function(){ console.log("p4"); f("yay"); }, 400); }); //Promise.all([p1,p2, p3, p4]).then(function(p){ // console.log("Results:",p); //}).error(function(e){ // […]