我已经创build了一个使用node.js的应用程序,我很想知道是否可以将客户端(js,html,css)和服务器端打包到独立的应用程序(不需要浏览器)。
我们目前正在为一个客户开发一个网站(Apache下的TYPO3),该客户受到node.js / socket.io应用程序支持,该应用程序可以实时更新从CMS提供的内容。 由于这是我们的第一个node.js项目,所以我没有任何最佳实践,所以我花了一些时间研究部署技术。 我仍然有几个问题要达到一个好的设置: 很容易为客户部署 。 这是非常重要的,因为我们的网站将被集成到他们的“实时”TYPO3安装中,该服务提供了大量的网站,并且运行在不是由客户pipe理的服务器上,而是另一个(支持呼叫和服务器更改的)缓慢的过程。 应该很容易更新。 正如前面所提到的,请求重启和更改服务器是一个很慢的过程,所以理想的情况是,当节点安装接收到使用git压入活安装的更改时,应该重新启动/更新。 部署 普遍的共识似乎是在部署节点应用程序以保持其运行时forever使用。 我已经testing了forever ,它似乎工作正常,安装通过npm install forever -g (全球)。 虽然这需要外部的帮助来在全球范围内安装,所以我宁愿从应用程序的node_modules目录运行它,但是我还没有能够创build一个可靠的包装器。 此外, forever工作正常,但它必须手动启动。 确保服务器启动并保持运行的最佳方法是什么? 一个简单的init.d脚本? 写一个看门狗包装? TYPO3调度程序任务, forever检查状态? 快速开发/重新开始更新 我们目前还处于项目的开发阶段,每次我对node.js应用程序进行更改时,都会手动重新启动node或forever重新启动node 。 这工作,但远非理想。 有几个较小的npm模块检查文件修改,并检测到更改后重新启动node ,如: Nodemon Node.js主pipe 弹跳 结节 (不需要重新启动节点,因此可能更容易与forever结合) 向上 有没有人有这些经验? 更新:为什么你不使用群集? 群集模块通过重载机制提供类似的function,但不适用于Node 0.5+ 。 replace它的核心群集模块(节点0.6+)不具有所有这些function,但仅提供群集function。 而socket.io反过来又不好用 。 至less不是没有使用Redis (这对我们来说是一个问题,因为我们不能强制给客户另外的prereq服务)。 – 显然,我试图find最稳定的解决scheme,结合更新 – 重新启动程序与forever将项目交给客户之前,我真的希望任何人已经产生了一个成熟的技术组合。
我是Node.js的新手,希望使用stream来运行程序。 与其他程序,我不得不同时启动一个服务器(mongodb,redis等),但我不知道是否应该运行一个与此。 请让我知道我哪里去错了,我怎么能纠正这一点。 提前致谢。 这是该计划: var http = require('http'), feed = 'http://isaacs.iriscouch.com/registry/_changes?feed=continuous'; function decide(cb) { setTimeout(function () { if (Date.now()%2) { return console.log('rejected'); } cb(); }, 2000); } http.get(feed, function (res) { decide(res.pipe.bind(res, process.stdout)); //using anonymous function instead of bind: // decide(function () { // res.pipe(process.stdout) // }); }); 这是cmd输出: <b>C:\05-Employing Streams\05-Employing Streams\23-Playing with pipes>node […]
我们在一台也使用Perl提供页面的机器上安装了Apache Web服务器。 对于一个项目,我决定使用Node.js而不是Perl / Ruby。 只是想知道是否有可能使用Apache作为我的networking服务器(所以它服务的页面),并使用Node.jsdynamic创build网页(这是一个Web应用程序,我正在创build)? 换句话说,它们可以像Apache / Perl或Apache / PHP一样携手合作。
我是Node.js编程的新手,最近我创build了一个使用(express,backbone和其他免费的视图技术,使用mongoDB)的示例工作Web应用程序。 现在我正想要在临时环境中部署相同的程序,我不确定如何打包此应用程序并分发它。 [我可以照顾mongoDb并单独设置] 我来自Java世界,在那里我们为部署在servlet容器中的web应用程序创build可重用的libs和war / ear包的jar。 现在在这种情况下,因为node.js本身也是一个Web容器,所以如何打包我的webapp呢? 包装节点webapps是否有使用express构build的标准格式/指南? (有没有类似的jar / war包装系统的节点应用程序?) 打包后如何部署? 它会成为一个exe,因为它也是它自己的容器? PS:到目前为止,我正在考虑将所有必需的源文件手动复制到临时环境中,并运行npm命令来下载该机器上的所有依赖项,然后使用“forever”或其他一些机制来运行我的server.js。 (另外,添加一些监控,以防万一程序崩溃,永远失败)我不知道这是正确的方式吗? 我确信必须有一些解决这个问题的标准化方法。
我尝试写一个React组件。 用于html标题标签(h1,h2,h3等),其中标题优先级根据我们在道具中定义的优先级dynamic改变。 这里我试着去做。 <h{this.props.priority}>Hello</h{this.props.priority}> 预期产出: <h1>Hello</h1> 这不起作用。 有没有可能的方法来做到这一点?
我使用Passport.js进行身份validation(本地策略),并使用Mocha和Supertest进行testing。 我如何创build一个会话,并使用Supertest进行身份validation请求?
好的,我已经使用Jekyll创build了一个博客,您可以在_config.yml文件中定义可在所有模板/布局中访问的variables。 我正在使用Node.JS / Express与EJS模板和ejs-locals (用于partials / layouts)。我正在寻找类似于像_config.yml中find的site.title这样的全局variables,如果有人熟悉Jekyll 。我有像网站的标题,(而不是页面标题),作者/公司名称,在我的所有网页上保持相同的variables。 这是我目前正在做的一个例子。 exports.index = function(req, res){ res.render('index', { siteTitle: 'My Website Title', pageTitle: 'The Root Splash Page', author: 'Cory Gross', description: 'My app description', indexSpecificData: someData }); }; exports.home = function (req, res) { res.render('home', { siteTitle: 'My Website Title', pageTitle: 'The Home Page', author: 'Cory Gross', description: […]
如果mongoose不能连接到我的数据库,我怎么能设置error handling的callback? 我知道 connection.on('open', function () { … }); 但是有没有像 connection.on('error', function (err) { … }); ?
我正在使用Node.JS的MongoDB。 我有一个包含date和其他行的集合。 date是一个JavaScript Date对象。 我怎样才能按datesorting这个集合?