当我启动一个基于node.js的网站时,有没有一个清单?
我正在用node.js完成我的第一个站点,我很好奇,是否有一个我应该完成的所有事情的检查清单,我得到它之前。 在开发中,当我的数据库调用不需要某些值时(使用Mongoose),我的站点就会死亡(例如节点段错误)。
我也将在我的VPS上使用这个已经安装了Apache的VPS,那么我将能够运行这两个还是我需要看看别的东西呢?
基本上一旦启动,我想继续保持,我想在这之前知道我应该知道的任何标准预防措施。
谢谢!
我目前处于类似的情况(即将在私人VPS上部署我的第一个应用程序),这里是我提出的列表:
1-错误日志logging:我在这里使用了一个简单的WriteStream ,没什么特别的。
var fs = require('fs'); //You might want to specify a path outside your app var file = './log.log'; var logger = fs.createWriteStream('./log.log'); app.configure(function(){ //... app.set(express.logger({stream:logger})); /... });
2- 永远使用,以确保您的脚本将连续运行。 是的,他们有很多其他解决scheme(例如使用守护进程 ),但是我现在已经使用了一段时间了,从来没有遇到任何问题。
3-考虑设置pipe理界面。 这实际上是对我来说是一个要求,所以我继续与烟雾 ,这将看起来非常好,尤其是对于你的客户:)。
4-如果你永远使用,你可以使用Monit监视它的状态。 看看这个博客文章的基本设置。
5-如果您正在使用Mongo,请考虑制定数据的备份策略。 这个页面是一个非常好的起点 。
请注意,此列表不包含有关多应用程序,多机器或多核心支持的任何信息。
如果多应用程序支持您感兴趣,nginx似乎是一个值得信赖的解决scheme。 这个(精采)的答案将帮助你build立起来。
如果有许多备用机器可用, node-http-proxy是由nodejitsu开发的,并且允许您只公开一台机器并反向代理剩下的机器。
如果您正在寻找多核支持, 群集将与节点捆绑在一起,因此您可以产生N个不同的进程(N是您拥有的核心数量),并让它们监听共享端口。
而且,既然我们都喜欢听到一个很好的故事,这里有一些关于nodejs / mongodb在生产中的使用和经验教训:
1- 启动i.TV的经验教训
2- 使用Mongodb在craigslist上的二十亿个文件
鉴于Node.js不是像Apache或IIS这样的Web服务器,所以没有configuration设置的清单。 此外,考虑到您所使用的模块和/或框架可能会根据您所创build的项目而有很大差异,所以清单总是会漏掉一些东西……特别是随着Node.js生态系统的不断发展和壮大。
因此,我build议您在回答您的问题时回顾一下这些资料,无论您使用的是什么Node.js,通常都是有用的:
- 每个程序员应该怎么知道web开发? – 列出你应该通过,以确保你没有忘记一般相关的任何东西。
- Node Express Mongoose Demo – 示例代码,可以向您展示如何正常处理错误,构build代码,使用
require
语句来分解代码,添加特定于环境的configuration等。 - Node.js最佳实践exception处理 – 有关处理问题的其他信息
- 同一台服务器上的Apache和Node.js – 最简单的答案是“当然,只要确保你使用的是不同的端口”。 如果你想要在80端口上运行和回答,那么事情就更复杂了。
我担心,你的应用程序“死亡时,我的数据库调用中预计不会有某些值”。
Mongoose是一个很好的工具,因为它允许在单个字段上进行自定义数据validation,可以过滤掉不符合您定义的Schema的数据(保持文档一致),并且在出现“坏数据'传递给它,而不是发送错误的数据到数据库,以及更多…
我想知道你在做什么,一个未处理的错误是通过Mongoose 和任何callback函数知道callback通常采用格式function(err, data)
并提供机会来立即处理错误。
- 关于node.js开发环境和部署策略的一些问题
- 如何为Node.js WebSocket服务器configurationAWS Elastic Beanstalk?
- 将Node.js设置为$ PATH(Ubuntu 12.04)
- (gcloud.preview.app.deploy)错误响应:托pipe虚拟机无法托pipe在应用程序的区域
- 使用生产代码部署configuration文件
- 如果将节点应用程序埋在回购目录中,如何将节点应用程序部署到azure色
- 在生产机器上部署和运行节点服务器的最佳方法?
- 有没有类似于用JavaScript编写的Fabric的部署工具?
- 用mercurial推送node.js应用程序的部署