Node.js实践第一天
实践案例一 表单提交
demo.html
<!doctype html>
<html>
<head>
<title>表单提交</title>
</head>
<body>
<form method="post" action="http://localhost:3000/">
姓名:<input type="text" name="title" /><br/><br/><br/>
备注:<textarea name="text"></textarea><br/>
<input type="submit"/>
</form>
</body>
</html>
postdata.js
//post form
var http = require('http');
var querystring = require('querystring');
var server = http.createServer(function(req,res){
var post = '';
req.on('data',function(chunk){
post += chunk;
});
req.on('end',function(){
post = querystring.parse(post);
res.write(post.title);
res.write(post.text);
res.end();
});
}).listen(3000);
在使用dos窗口运行js的时候记得把http,querystring两个模块使用npm install -g xxx到本地。
cd到上述文件的目录,运行命令
node postdata.js
运行效果图

提交结果显示界面

思考:PHP获取POST提交的数据并将数据返回给用户,仅仅写两行代码,
echo $_POST['title'];
echo $_GET['text'];
而Node.js完成以上工作需要先创建一个HTTP实例,手动编写req对象的事件监听器,当客户端数据到达时,将POST数据暂时存在闭包的变量中,直到end事件触发,解析post请求,处理后返回到客户端。php之所以简单,是因为它已将这些功能封装好了,只提供了一个高层的接口。此处实例虽然直接使用了http模块,但是却不是让你直接使用这个模块进行web开发,http模块仅仅是一个HTTP服务器内核的封装,你可以用它做任何HTTP服务器能做的事情,不仅仅是做一个网站,甚至实现一个HTTP代理服务器。如果直接使用这种方法开发网站,必须手动实现所有东西。
Express 框架 一个轻量级的Web框架
npm 提供了大量的第三方模块,其中Express作为开发框架,是目前最稳定的、使用最广泛的框架。
Express(http://expressjs.com/)除了为http模块提供了更高层的接口外,还实现了许多功能,其中包括:路由控制,模板解析支持,动态视图,用户会话,CSRF保护,静态文件服务,错误控制器,访问日志,缓存,插件支持等,多数功能只是对HTTP协议中常用的操作封装,更多的功能需要插件或者整合其他模块来完成。
实现与之前相同的例子。
var express = require('express');
var app = express.createServer();
app.use(express.bodyParser());
app.all('/',function(req,res){
res.send(req.body.title+req.body.text);
});
app.listen(3000);
Node.js实践第一天的更多相关文章
- Node.js 创建第一个应用
如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi. 从这个角度看,整个"接收 HTTP 请求并提供 ...
- 使用node.js创建第一个应用
node.js应用组成部分 1.引入require模块:我们可以使用require指令来载入Node.js模块. 2.创建服务器:服务器可以监听客户端的请求,类似于Apache,Nninx等HTTP服 ...
- Node.js入门第一天
一.Node.js简介 1.1 简介 V8引擎本身就是用于Chrome浏览器的JS解释部分,但是Ryan Dahl这哥们,鬼才般的,把这个V8搬到了服务器上,用于做服务器的软件. Node.js是一个 ...
- Node.js创建第一个应用
在我们创建 Node.js 第一个 "Hello, World!" 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的: 引入 required 模块:我们可以使用 r ...
- 7.Node.js 创建第一个应用
转自:http://www.runoob.com/nodejs/nodejs-tutorial.html 如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器, ...
- Node.js 实现第一个应用以及HTTP模块和URL模块应用
/* 实现一个应用,同时还实现了整个 HTTP 服务器. * */ //1.引入http模块 var http=require('http'); //2.用http模块创建服务 /* req获取url ...
- [读书笔记]了不起的node.js+实践(一)
环境的变化带来了技术大跃进,机遇和挑战同时到来.基于我js也没有学,只好赶鸭子上架一起学了.(>﹏<) 1.先读读书 一开始就不知死活地看<深入浅出node.js>,弄得团团转 ...
- node.js之第一天
一.http模块 //require表示引包,引包就是引用自己的一个特殊功能 var http = require("http"); //创建服务器,参数是一个回调函数,表示如果有 ...
- node.js实践第二天
使用Express框架搭建一个网站 1.安装Express 首先要用全局模式安装Express,因为只有这样才能在命令行中使用它.使用下述命令在伪dos命令窗口安装express. $ npm ins ...
随机推荐
- [Python笔记][第四章Python正则表达式]
2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...
- CSS选择符 新的认识
以前写选择符,很少使用">"符号,一般都是使用" "空格来代替.我觉得他们都是一样的功能,另一方面是为了方便.毕竟不用按住shift. 例如: .demo ...
- startActivityForResult中回调setResult注意事项
读 http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html 有感 文中提出了一个核心问题: Android activity ...
- 【mysql】1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) 问题
最近在做一个项目,其中一需求是:部分数据库中的数据需要定时删除掉(满足一定条件,比如7天前的数据都不保留) 最初的执行方法: 使用Quartz定时执行数据库操作,进行数据删除,数据库操作使用delet ...
- InetAddress类的使用
1.1. 简介 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetAddress是Java对IP地址的封装,在java.net中有 ...
- 函数stripslashes去除转义 shopnc 搜索框过滤特殊字符 输入单斜杆会自动转义
如何php是如何处理和过滤特殊字符的呢? 搜索%_显示所有商品:搜索\会在搜索框内叠加\\ 查了一下 magic_quotes_sybase 项开启,反斜线将被去除,但是两个反斜线将会被替换成一个. ...
- Django学习(六) 模板
下面是一个新闻的模板:mysite/news/templates/news/year_archive.html mysite/news/templates/news/year_archive.html ...
- 黑马程序员 1、C语言32个关键字整理分类
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ C语言一共有32个关键字 一.数据类型关键字(共20个) A.基本数据类型(5个)void :声明 ...
- linux系统文件夹的作用 good
/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 如:环境变量 /etc/rc.d 启动的配置文件和脚本 /home用户主目录的基点,比如用户user的主目录就是/ho ...
- Application.HookMainWindow完全替代了原来的窗口过程(但是好像也会继续传递)
unit HookMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialo ...