当我启动一个基于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)并提供机会来立即处理错误。