老大让做一个简单的Http服务器响应的东西,可是服务器端的脚本一点点也不会,ruby到现在也没怎么入门,想起nodejs可以做简单快速的服务器端,就用这个了
其实需求很简单就是响应URL的参数请求做一些简单的响应,nodejs用的是javascript,方法也不是很复杂,module也不用太多,觉得挺适合的,于是就从0开始了
下载源码,编译,看sample,就开始写了。
源码如下
var sys = require("util"),
http = require("http"),url = require("url");
var fs = require("fs");
var querystring = require("querystring");
http.createServer(function(request, response) {
console.log("request version" + request.httpVersion + " request headers " + request.headers["Content-Type"] + " " + JSON.stringify(request.headers)) ;
var pathname = url.parse(request.url).pathname;
var search = url.parse(request.url).search;
var query = url.parse(request.url).query;
if(pathname == '/update.zip'){
fs.readFile("./update.zip", "binary", function(error, file) {
if(error) {
response.writeHead(500, {"Content-Type": "text/plain"});
response.write(error + "\n");
response.end();
} else {
response.writeHead(200, {"Content-Type": "application/zip"});
response.write(file, "binary");
response.end();
}
});
}else{
console.log("pathname = " + pathname+"search "+search + " query = "+ query);
response.writeHeader(200, {"Content-Type": "text/html"});
var param = querystring.parse(query);
var srcversion = param["swv"];
console.log(" param = " + param["hw"]);
// response.writeHeader(200, {"Content-Type": "text/html"});
response.write('<?xml version="1.0" encoding="UTF-8"?>');
response.write('<OTAPackage><srcVersion>'+srcversion +'</srcVersion>');
response.write('<dstVersion>'+'higher version'+'</dstVersion>');
response.write('<description><![CDATA[OTA_030_042]]></description>');
response.write('<downloadURL>http://192.168.0.154:8080/update.zip</downloadURL>');
response.write('<size>7953346</size>');
response.write('<priority>Optional</priority>');
response.write('<sessionId>007d0d21-64c8-4768-9f91-d1ae5268113f</sessionId>');
response.write('</OTAPackage>');
response.end();
}
}).listen(8080,"192.168.0.154");
sys.puts("Server running at http://localhost:8080/");
就是这么简单的东西,刚开始的时候response没有写end,结果只能第一次响应正确,后面的全都挂了,http协议也不是太熟悉,具体原因也没搞清楚,有知道的高手请告知一下,谢谢了
分享到:
相关推荐
NodeJS入门项目案例(Express+Mysql)是一个适合初学者的教程,旨在引导你进入Node.js服务端开发的世界。在这个项目中,我们将使用Express框架,一个简洁且强大的Web应用开发框架,以及Mysql,一个流行的开源关系型...
本教程《Node.js的中文入门手册》将帮助初学者快速掌握这一技术。 一、Node.js 基础 1. 安装与环境配置:介绍如何在Windows、MacOS或Linux上下载并安装Node.js,以及验证安装成功的步骤。 2. JavaScript 基础:回顾...
本资源"Nodejs入门经典"旨在帮助初学者快速掌握Node.js的基础知识和实际应用。 **一、Node.js简介** Node.js的核心特性是它的事件驱动架构和非阻塞I/O模型,这使得它非常适合用于处理并发请求,尤其是在处理大量...
Node.js入门:开启服务器端JavaScript之旅 Node.js是一款基于Chrome V8引擎的JavaScript运行环境,由Ryan Dahl在2009年创立。它的出现打破了JavaScript只能在浏览器端使用的局限,让开发者可以用熟悉的JavaScript...
Nodejs的入门教程的示例,没有错误的地方,可以方便的找到自己有什么错误的
Node.js入门这本书是由Manuel Kiessling撰写,旨在帮助读者掌握Node.js应用开发的技能。作者通过丰富的实践经验和深入浅出的讲解方式,引导初学者通过项目实践深入理解Node.js的使用,特别是如何将JavaScript运用在...
NodeJs入门学习文档,对于新手刚接触NodeJs有一定的帮助
本压缩包包含了一份NodeJS入门手册(NODE.js入门手册.pdf)和64位的NodeJS安装程序(node.exe),旨在帮助初学者快速了解并安装NodeJS。 **NodeJS核心特性** 1. **RESTful API**: REST(Representational State ...
### Node.js 入门知识点详解 #### 一、Node.js简介 Node.js 是一种让 JavaScript 运行在服务器端的应用平台。它利用 Chrome V8 引擎的强大性能,结合事件驱动和非阻塞 I/O 模型,为 Web 开发者提供了一种全新的构建...
在"NodeJS入门项目案例(Express+Mysql)服务端开发.pdf"文件中,你将找到详细的步骤指导和代码示例,帮助你一步步完成整个项目。这个项目不仅涵盖了基础的NodeJS服务端开发,还涉及到数据库操作和RESTful API设计,...
本文将深入探讨在"nodejs入门3路由1"中的知识点,包括路由的实现、请求处理以及模块之间的协作。 首先,我们来看`router.js`模块,这是路由的核心。`route`函数接收两个参数:`handle`对象和`pathname`。`handle`...
这个"nodejs入门资料案例加详细使用手册.zip"压缩包文件提供了学习Node.js的基础和实践材料,非常适合初学者入门。 一、Node.js基础知识 1. 非阻塞I/O模型:Node.js的核心特性之一是其非阻塞I/O模型,基于事件驱动...
**Node.js 入门知识详解** Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者可以使用 JavaScript 来进行服务器端编程。Node.js 使用了一个事件驱动、非阻塞 I/O 模型,使其轻量又高效,特别...
这个“nodeJS基础入门”教程很可能是为了帮助初学者掌握 Node.js 的基本概念、语法以及如何与 MySQL 数据库进行交互,从而实现一个简单的个人博客系统。下面将详细阐述 Node.js 的核心特性、模块化开发以及如何结合...
本书致力于教会你如何用 Node.js 来开发应用,过程中会传授你所有所需的“高级”JavaScript 知识。本书绝不是一本“Hello World”的教程。 ...对 JavaScript 处于初学阶段,并且完全是一个 Node.js 的新手。...
Node.js入门主要介绍的是使用Node.js进行应用开发的基础知识和高级概念。Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它使得JavaScript可以运行在服务器端。Node.js非常适合处理I/O密集型的网络应用,比如...
在本篇《Node.js入门教程六:Express模块用法示例》中,我们将深入探讨Express——一个基于Node.js平台的极简、灵活的web应用开发框架。Express使得构建web应用变得简单,它提供了丰富的功能,如中间件系统、路由...