基于Node.js的文件下载服务器

首先表示,并不是我客户端玩腻歪了要玩跨界;另外,代码不是我写的,而是我找的。

直接上代码地址,不想看唠叨的就直接下载代码就ok了。

https://github.com/andygrn/Node.js-File-Server

下载代码后,直接把server.js拖到node.exe图标上就可以运行了,在浏览器中访问http://127.0.0.1:80/可以直接连接下载服务器了。

1、为什么要关注下载服务器(文件服务器)?

因为我要写个多线程断点续传的下载库,当然要有一个服务器进行测试。用Apache搭建的太过困难,乱七八糟的一大堆东西要配置,之前都是使用网上下的简易web服务器。这个倒是能满足需求,不过总会有一些缺点,比如只支持有限的扩展名格式的文件,连接限制等。而恰好我想到前一段时间关注的Node.js,就想干脆自己实现一个,代码都在自己手上,很多东西也好解决。而且后面还会有服务器相关的需求,研究一下也有好处。

2、为什么要关注Node.js?

原本我以为服务器就应该要用c++来写,之前公司也说测试过c#的服务器性能不行。但是随着手游的兴起,越来越多的实例表明,服务器可以有很多解决方案,只要自己喜欢用着顺手就是正确的解决方案。很多千万用户量的手游服务器竟然是PHP写的,Java、Go、Erlang也有很多成功的例子。我们可以看到,在某种程度上说,代码级的效率远远比不上设计和结构上的效率提升,更何况很多写c++的人不一定能写出安全高效的代码。

Node.js就是一个Javascript的解决方案。网易也有推出一个基于Node.js的开源分布式游戏服务器引擎Pomelo。且不论具体代码如何,结构设计上还是非常漂亮的,而且因为Node.js的特性,天生就为解决高并发而来。Node.js是基于Google V8的脱离于浏览器的解析Javascript的应用程序,有非常多的第三方模块。Node.js的设计初衷就是为了解决高并发网络服务器的问题。从这点也可以看到,如果能够从语言或者框架的角度来解决大用户连接的问题的话,那么其实没有必要使用c++来写出一坨蹩脚的代码而且只能支撑800人连接。

3、使用是否方便?

如果熟悉了异步编程的习惯,其他的还是很简洁的。毕竟如果一个脚本语言都需要钻研才能写出合格的代码的话,那就是去了脚本语言的本意。

整个服务器功能比较完善,而代码量只有两百行左右。

时间: 2024-12-20 19:01:04

基于Node.js的文件下载服务器的相关文章

基于Node.js搭建静态服务器

作者:zhanhailiang 日期:2014-11-23 原理: 通过解析请求url来解析到相应文件路径: 判断文件是否存在: 若存在,则读取文件内容输出: 实现: var path = require('path'), fs = require('fs');   require('http').createServer(function(req, res) { // 解析文件路径,默认以当前目录为根目录查找文件 // 这里可以通过配置root值来做为相对根目录查找文件 var file =

基于Node.js和express的日志服务器

首先,这篇文章学习的意义大于实际价值.如果按我的本意,直接在游戏中加入友盟,信息更全,而且非常简单.不过总是有很多人会凭着自己过时或者错误的经验去说别的东西多么不好,自己的东西多么好.好在,我自认为学习能力非常强,解决问题的能力也非常强.真让我做一个服务器+前端,也是在兴趣之中和能力之内. 一.Node.js简介 原本javascript纯粹是一个前端语言,干的基本上是让网页更丰富更炫的事情.不过Node.js出现后,javacript成为了前后端通吃的语言.比如网易的pomelo就是基于Nod

基于Node.js + socket.io实现WebSocket的聊天DEMO

原文摘自我的前端博客,欢迎大家来访问 http://hacke2.github.io 简介 最近看Node.js和HTML5,练手了一个简易版的聊天DEMO,娱乐一下 为什么需要socket.io? node.js提供了高效的服务端运行环境,但是由于浏览器端对HTML5的支持不一, 为了兼容所有浏览器,提供卓越的实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验, 于是socket.io诞生. 简答来说socket.io具体以下特点: 1.socket.io设计的目标是支持任何的浏览器

《基于Node.js实现简易聊天室系列之详细设计》

一个完整的项目基本分为三个部分:前端.后台和数据库.依照软件工程的理论知识,应该依次按照以下几个步骤:需求分析.概要设计.详细设计.编码.测试等.由于缺乏相关知识的储备,导致这个Demo系列的文章层次不是很清楚,索性这一章将所有的过程(前后端以及数据库)做一个介绍,下一章写完总结就OK了吧. (1)前端部分 涉及到的技术:html.css.bootstrap.jquery.jquery UI 登录/注册界面使用的是bootstrap响应式布局,即支持不同尺寸的客户端,以此提高用户的体验.在这之前

基于Node.js的强大爬虫 能直接发布抓取的文章哦

基于Node.js的强大爬虫 能直接发布抓取的文章哦 基于Node.js的强大爬虫能直接发布抓取的文章哦!本爬虫源码基于WTFPL协议,感兴趣的小伙伴们可以参考一下 一.环境配置 1)搞一台服务器,什么linux都行,我用的是CentOS 6.5: 2)装个mysql数据库,5.5或5.6均可,图省事可以直接用lnmp或lamp来装,回头还能直接在浏览器看日志: 3)先安个node.js环境,我用的是0.12.7,更靠后的版本没试过: 4)执行npm -g install forever,安装f

Node.js 的Web 服务器--Fenix

Fenix 是提供给开发人员使用的简单的一个 Web 服务器, 是基于 Node.js 开发.可以同时在上面运行很多的项目, 最适合前端开发人员使用. 可以通过免费的 Node.js 控制台创建,停止,启动和共享 Fexix 服务器. 您可以通过把你的桌面变成一个公共的 Web 服务器,让大家能看到你的web服务. Fenix官方 Node.js 的Web 服务器--Fenix

《基于Node.js实现简易聊天室系列之引言》

简述:这个聊天室是基于Node.js实现的,完成了基本的实时通信功能.在此之前,对node.js和mongodb一无所知,但是通过翻阅博客,自己动手基本达到了预期的效果.技术,不应该是闭门造车,而是学会分享总结才能进步.因此,我想记录下我的学习心得.不喜勿喷. 技术选型: 数据库:mongodb 实时通信:socket.io 服务器:node.js 后台:node.js 前端js库:jquery 数据库之所以选择mongodb,是因为mongodb是介于关系型与非关系型之间的一款产品,存储格式为

基于Node.js的文件服务器(使用Q重构代码)

之前写过一篇文章,简单介绍了一个基于Node.js的静态文件服务器.那时还只是个人兴趣.最近又有了关于服务器的新的需求,我就想花点时间,好好研究一下.所以把之前的代码拿出来重构了一番,整体代码变得干净很多. 首先最新Node.js是支持generator的,所谓generator,就是javascript中的协程(半协程),不过功能稍弱,仅仅是为了解决js中凶名赫赫的callback hell而诞生的.这里我并没有使用generator,而是使用promise(饭要一口一口吃,先弄明白promi

Node.js线上服务器部署与发布

第1章 课程预热对整个部署思路进行全流程介绍,通过 5 个不同类型项目,来演示从本地的仓库到最终线上稳定运行的整个项目部署发布流程,来帮助始终编程在一线的前端或者后端工程师,甚至是有 Coding 能力的产品经理,从操作流程和架构形态上,掌握从零开始的项目上线环节,掌握这关键一步,跨过去前端到后端,本地到线上,开发到生产...1-1 为什么是全栈最后一公里1-2 搭建线上生产环境需要做什么 第2章 待部署的 5 个本地 Nodejs 项目分别介绍五个技术架构和产品形态的项目背景,一个 Nodej