如何等待承诺解决?

我正在处理一个NodeJs框架,要求某个function是同步的,但我需要检索一个只能asynchronous访问的值。 在一个完美的世界里,我可以回报一个承诺,但是我不能。 作为一个快速和肮脏的解决scheme,我创build了以下方法: exports.synchronizePromise = function(promise) { var value; promise.then(function(promiseValue) { value = promiseValue; }); while (!value) {} // Wait for promise to resolve console.log("DONE: " + value); // Never reached return value; }; 但是我得到一个错误。 有什么办法来完成我所需要的?

package.json中的根目录

我的问题涉及到我想作为NPM模块发布的现有库。 该库已经在使用,目前require通过本地文件系统。 我怎样才能指定我的模块文件的根目录? 如果我有像这样的结构: . ├── package.json ├── src | ├── js | └────── lib | └───────── my | └───────────── thing.js | └───────────── that.js 我如何指定我的模块的根,可访问的文件是src/js/lib/my/ ? 我想从外部项目中使用如下: var thing = require('my/thing'), that = require('my/that'); 我看到package.json中的"files"属性,这是正确的方法吗?

Mongodb与Postgres在Nodejs应用程序

我正在构build一个nodejs应用程序,并完全在nosql mongodb和rmds PostregresSql之间撕裂。 我的项目是创build一个开源示例项目,用于logging访问者,并使用nodejs在网页上实时显示访客统计信息。 我打算首先使用mongodb,因为很多nodejs的例子和教程,albiet大多是较老的,使用它和Paas主机有一个免费的teir是很多的。 然而,我最近在mongodb上看到了很多抨击,发现那些试图使用mongodb的人最终转向了postgres。 http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodb http://dieswaytoofast.blogspot.com/2012/09/mysql-vs-postgres-vs-mongodb.html http: //www.plotprojects.com/why-we-use-postgresql-and-slick/我也是一个heroku的粉丝,并且听说过很多关于postgress的问题,发现sql查询有时候可以很好。 我不是一个数据库专家,所以我不能告诉我的生活要走哪条路。 如果你能给出一些build议,哪一个可以考虑以及为什么,我真的会赞同它。 我有几个标准: 既然我想这是一个例子,那么有一个方法来容纳大小适中的数据是很好的。 我知道mongodb挑衅地提供这个,但像heroku这样的postgres paas似乎有非常小的数据库(因为我logging每个访问者的网站) 一个简单易懂的数据库。 performance并不重要,但速度不能伤害 感谢所有的帮助! 注意 :请不要火焰大战,大家有自己的看法:)

如何在android上运行我的node.js项目?

我有一个工作在我的Android平板电脑的PHP服务器,所以我希望它可以以某种方式运行nodejs也。 源代码在github上可用,也可以在linux上构build,但是我不能真正了解如何构build它。 提前致谢,

Node.JS Webserver中的安全性

所以,我正在学习Node.JS的方法,到目前为止我都很喜欢它。 我有几个项目已经在工作,我想我可以利用nodejs。 不过,我担心安全问题。 如果我使用Node.JS的http模块编写一个自定义的networking服务器,我是否可能超级受到攻击? Apache / IIS已经有多年 (和多年)的专业团队将安全build设到他们的networking服务器,仍然有人继续发现漏洞。我的自制Web服务器可能会更容易攻击吗? 我可以专注于什么东西来build立一个安全的好层到我的networking服务器? 那里有没有好的文章涵盖了这个话题?

什么是jsdom的用例

看完这个微模板是死的文章。 我很好奇: 无论是在服务器上使用DOM,都会产生更清洁,更可维护的代码,然后模板化。 使用jsdom而不是模板引擎更高效。 如何将jsdom分解为标准MVC设置的视图。 通常在什么情况下最好使用服务器端的DOM抽象,比如jsdom,而不是像EJS或者jade这样的模板引擎。 这个问题是特定于node.js和其他SSJS

BackboneJS渲染问题

在过去的六个月里,我一直在与Backbone合作。 前两个月都在搞乱,学习和弄清楚我想如何构build我的代码。 接下来的4个月里,一个生产适合的应用程序正在冲击。 不要误会我的意思,Backbone已经把我从之前标准的数千行客户端代码中解救了出来,但是它使我能够在更短的时间内完成更多macros大的事情,从而开辟了一堆新的问题。 对于我在这里提出的所有问题,都有一些简单的解决scheme,就像黑客或者只是觉得错误 。 我保证300分的奖励一个真棒解决scheme。 开始: 加载 – 对于我们的用例(pipe理面板),悲观同步是不好的。 对于某些事情,我需要在接受它们之前在服务器上validation事物。 我们在'sync'事件被合并到Backbone之前就开始了, 我们用这个小代码来模拟加载事件: window.old_sync = Backbone.sync # Add a loading event to backbone.sync Backbone.sync = (method, model, options) -> old_sync(method, model, options) model.trigger("loading") 大。 它按预期工作,但不正确。 我们将此事件绑定到所有相关视图,并显示一个加载图标,直到我们从该模型中收到成功或错误事件。 有没有更好,更清洁的方法来做到这一点? 现在对于困难的人来说: 太多的东西渲染自己太多 – 比方说,我们的应用程序有标签。 每个选项卡控制一个集合。 在左边你收集。 你点击一个模型开始在中心编辑它。 您更改其名称并按Tab键以转到下一个表单项目。 现在,你的应用程序是一个“实时的东西”,注意到差异,运行validation,并自动同步更改到服务器,不需要保存button! 太好了,但是表格的开始处的H2与input中的名称相同 – 您需要更新它。 哦,你需要更新名单上的名字。 俄亥俄州,名单按名称sorting! 这是另一个例子:你想在集合中创build一个新的项目。 你按下“新build”button,你开始填写表格。 你是否立即将该项目添加到集合? […]

mongoosefindOneAndUpdate不起作用

我正在尝试在mongoose中使用“findOneAndUpdate”,并且我发送的更新的JS对象没有被保存到mongo中。 保存时我没有收到错误,但是我确实收到了更新对象的空值。 任何想法我可能做错了什么? 这个例子是试图更新整个对象存储在mongo中,即覆盖名称对象。 var query = {"_id": id}; var update = {name: {first: 'john', last: 'smith'}}; var options = {new: true}; People.findOneAndUpdate(query, update, options, function(err, person) { if (err) { console.log('got an error'); } // at this point person is null. });

如何将Node.js解释器embedded到C / C ++中?

我想在我的C / C ++应用程序中使用Node.js脚本。 有人build议我从v8开始,libev和libeio; 但它意味着从头重写Node.js。 那么,是否有可能将Node.jsembedded到C或C ++中?

将“编译”为HTML的内联样式

我正在编写一个电子邮件HTML模板,一些电子邮件客户端不支持<style>来指定CSS。 应用CSS的唯一select是使用内联样式( style属性)。 是否有一个工具或库(Node.JS)将样式表应用到某个HTML并获取应用了样式的HTML? 该工具不必支持许多select器; ID,类和元素名称select器应该足以满足我的需要。 需要什么的例子: // stylesheet.css a { color: red; } // email.html <p>This is a <a href="http://example.com/">test</a></p> // Expected result <p>This is a <a href="http://example.com/" style="color: red;">test</a></p>