我有一个socket.io服务器运行,并与一个socket.io.js客户端匹配的网页。 一切正常。 但是,我想知道是否可以在另一台机器上运行一个单独的node.js应用程序,它将作为客户端并连接到提到的socket.io服务器?
我发现了一些代码,他们设置快递,而不使用app.configure ,我想知道,使用app.configure没有环境说明符和不使用它之间的区别是什么? 换句话说,这有什么区别: var app = require(express); app.configure(function(){ app.set('port', process.env.PORT || config.port); app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */ app.use(express.bodyParser()); app.use(express.static(path.join(__dirname, 'site'))); } 和这个: var app = require(express); app.set('port', process.env.PORT || config.port); app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */ app.use(express.bodyParser()); app.use(express.static(path.join(__dirname, 'site'))); 谢谢。
我遇到了meteor ,虽然看起来令人兴奋,但我想知道它是如何工作的。 我的意思是传统的Web应用程序是这样工作的:服务器上的脚本从数据库获取数据并将其dynamic添加到Web页面,用户提交的数据通过其他脚本添加到数据库中。 但是这些东西在meteor中是如何工作的呢? meteor的不同部分如何相互关联?
有人使用Grunt的 节点检查器进行应用程序debugging吗? 如果不是,你能推荐一个基于Grunt的应用程序的debugging工具吗? 我正在与服务器端应用程序的nodejs ,我有Grunt使用分离任务(这是因为用户可以执行任务分开)。 提前致谢
我想改变process.env.PORT的价值,我该怎么做? 我正在运行Ubuntu 12.04。
在我正在使用的node.js脚本中,我想要将所有node.js模块(使用npm安装)打印到命令行。 我怎样才能做到这一点? console.log(__filename); //now I want to print all installed modules to the command line. How can I do this?
Process.platform为Windows返回“win32”。 在Windows上,用户的主目录可能是C:\ Users [USERNAME]或C:\ Documents and Settings [USERNAME],具体取决于正在使用哪个版本的Windows。 在Unix上这不是问题。
这可能看起来像一个基本的问题,但我找不到任何文档: 分叉和产生一个node.js过程有什么区别? 我已经读过分叉是产卵的一个特殊情况,但是使用它们的每个使用情况/重新使用有什么不同?
React.js最大的优点之一就是服务器端的渲染 。 问题是关键函数React.renderComponentToString()是同步的,因为在服务器上呈现组件层次结构时,不可能加载任何asynchronous数据。 比方说,我有一个通用的组件来评论,我可以放在页面上的任何地方。 它只有一个属性,某种types的标识符(例如,下面放置注释的文章的ID),其他所有内容都由组件本身处理(加载,添加,pipe理注释)。 我非常喜欢Flux体系结构,因为它使许多事情变得更加容易,而且它的存储对于共享服务器和客户端之间的状态是非常完美的。 一旦我的商店包含评论初始化,我可以序列化,并从服务器发送到客户端,它很容易恢复。 问题是什么是填充我的商店的最佳方式。 在过去的几天里,我一直在使用googlesearch,而且我遇到了很less的策略,考虑到React的这个特性被“提升”了多less,没有一个看起来真的很好。 在我看来,最简单的方法是在实际渲染开始之前填充我所有的商店。 这意味着在组件层次之外的地方(例如,挂钩到我的路由器)。 这种方法的问题是我几乎不得不两次定义页面结构。 考虑一个更复杂的页面,例如一个包含许多不同组件的博客页面(实际的博客文章,评论,相关文章,最新文章,推特stream……)。 我将不得不使用React组件devise页面结构,然后在其他地方我将不得不定义为当前页面填充每个需要的商店的过程。 这似乎不是一个很好的解决scheme给我。 不幸的是,大多数同构教程都是这样devise的(例如这个伟大的通量教程 )。 反应asynchronous 。 这种方法是完美的。 它让我简单地在每个组件的特殊函数中定义如何初始化状态(无论是同步还是asynchronous都无关紧要),并且在层次结构呈现给HTML时调用这些函数。 它的工作原理是一个组件在状态被完全初始化之前不会被渲染。 问题是,就我所知,它需要Fibers ,它是一个Node.js扩展,它改变了标准的JavaScript行为。 虽然我很喜欢这个结果,但在我看来,我们并不是find了解决scheme,而是改变了游戏规则。 我想我们不应该被迫使用React.js的这个核心特性。 我也不确定这个解决scheme的普遍支持。 是否有可能使用标准Node.js虚拟主机上的光纤? 我自己想了一下。 我没有真正想过通过实现的细节,但一般的想法是,我将以类似的方式扩展组件到React-async,然后我将重复调用根组件上的React.renderComponentToString()。 在每次过程中,我会收集扩展callback,然后在通行证处打电话给商店。 我会重复这一步,直到当前组件层次结构所需的所有存储将被填充。 有很多事情要解决,我特别不确定的performance。 我错过了什么? 还有另一种方法/解决scheme吗? 现在我正在考虑采取反应asynchronous/纤维的方式,但是我不完全确定,就像第二点所解释的那样。 关于GitHub的相关讨论 。 显然,没有官方的解决办法。 也许真正的问题是如何使用React组件。 像简单的视图层(几乎我的build议第一)或像真正的独立和独立的组件?
假设我已经写了一个Node.js应用程序,现在我想分发它。 当然,我想让用户容易,因此我不希望他安装Node.js,运行npm install ,然后手动inputnode app.js 我更喜欢一个单一的可执行文件,例如Windows上的.exe文件。 我怎么能这样做? 我知道这个线程 ,反正这只是关于Windows。 我怎样才能以平台无关的方式实现这一点? 有任何想法吗? 最佳实践? …? 完美的解决scheme是我可以给一个源文件夹的“编译器”。 源文件夹包含各种.js文件中的应用程序本身, node_modules文件夹和一些元数据(如package.json 。 输出应该是各种平台的二进制文件,如Windows,OS X和Linux。 呵呵,什么是重要的:我不想对源代码做任何改变,所以即使这个相对path现在在打包的应用程序中,调用相对path也require工作。 有任何想法吗? PS:我不希望用户独立安装Node.js,它也应该包含在可执行文件中。