首页 技术 正文
技术 2022年11月11日
0 收藏 344 点赞 3,287 浏览 1467 个字

实践案例一 表单提交

  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

  运行效果图

    Node.js实践第一天

  提交结果显示界面

    Node.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);

  

上一篇: 调用打印机Demo
下一篇: java学习——函数
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,581
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918