zoukankan      html  css  js  c++  java
  • Node.js实践第一天

    实践案例一 表单提交

      demo.html

     1 <!doctype html>
     2 <html>
     3     <head>
     4         <title>表单提交</title>
     5     </head>
     6 <body>
     7     <form method="post" action="http://localhost:3000/">
     8         姓名:<input type="text" name="title" /><br/><br/><br/>
     9         备注:<textarea name="text"></textarea><br/>
    10         <input type="submit"/>
    11     </form>
    12 </body>
    13 </html>

    postdata.js

     1 //post  form 
     2 
     3 var http = require('http');
     4 var querystring = require('querystring');
     5 
     6 var server = http.createServer(function(req,res){
     7     var post = '';
     8     
     9     req.on('data',function(chunk){
    10         post += chunk;
    11     });
    12     
    13     req.on('end',function(){
    14         post = querystring.parse(post);
    15         
    16         res.write(post.title);
    17         res.write(post.text);
    18         res.end();
    19     });
    20 }).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);

      

  • 相关阅读:
    给video添加自定义进度条
    高德地图鼠标获取经纬度
    高德地图行政区域划分
    面试经验之谈
    Hybrid App 开发模式
    运维 08 常用服务安装部署
    运维 07 Linux系统基础优化及常用命令
    运维 06 vim与程序员
    运维 05 Shell基本命令
    运维 04 Shell基础命令(二)
  • 原文地址:https://www.cnblogs.com/Sonet-life/p/4841014.html
Copyright © 2011-2022 走看看