全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

从零开始学习Node.js系列教程二:文本提交与显示方法

本文实例讲述了Node.js文本提交与显示方法。分享给大家供大家参考,具体如下:

index.js

var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);

server.js

var http = require("http");
var url = require("url");
function start(route, handle) {
 function onRequest(request, response) {
  var postData = "";
  var pathname = url.parse(request.url).pathname;
  console.log("Request for " + pathname + " received.");
  request.setEncoding("utf8");
  request.addListener("data", function(postDataChunk) {
   postData += postDataChunk;
   console.log("Received POST data chunk '"+
   postDataChunk + "'.");
  });
  request.addListener("end", function() {
   console.log("data received ending" + pathname);
   route(handle, pathname, response, postData);
  });
 }
 http.createServer(onRequest).listen(8888);
 console.log("Server has started.");
}
exports.start = start;

requestHandlers.js

var querystring = require("querystring");
function start(response, postData) {
 console.log("Request handler 'start' was called.");
 var body = '<html>'+
  '<head>'+
  '<meta http-equiv="Content-Type" content="text/html; '+
  'charset=UTF-8" />'+
  '</head>'+
  '<body>'+
  '<form action="/upload" method="post">'+
  '<textarea name="text" rows="20" cols="60"></textarea>'+
  '<input type="submit" value="Submit text" />'+
  '</form>'+
  '</body>'+
  '</html>';
  response.writeHead(200, {"Content-Type": "text/html"});
  response.write(body);
  response.end();
}
function upload(response, postData) {
 console.log("Request handler 'upload' was called.");
 response.writeHead(200, {"Content-Type": "text/plain"});
 response.write("You've sent the text: "+
 querystring.parse(postData).text);
 response.end();
}
exports.start = start;
exports.upload = upload;

router.js

function route(handle, pathname, response, postData) {
 console.log("About to route a request for " + pathname);
 if (typeof handle[pathname] === 'function') {
  handle[pathname](response, postData);
 } else {
  console.log("No request handler found for " + pathname);
  response.writeHead(404, {"Content-Type": "text/plain"});
  response.write("404 Not found");
  response.end();
 }
}
exports.route = route;

result:

知识点:

require和exports的用法:

index.js中代码

var Hello = require('.hello');
hello = new Hello();
hello.setName('Joey');
hello.sayHello();

hello.js中代码

function Hello(){
  var name;
  this.setName = function(thyName){
    name = thyName;
  }
  this.sayHello = function(){
    console.log('Hello ' + name);
  }
}
//exports.Hello = Hello; //此时我们在其他文件中需要通过 require('./hello').Hello来获取Hello对象,这种写法有点冗余
module.exports = Hello; //输出的就是Hello对象本身,不是上面的exports,上面的是暴露.Hello,.Hello赋予了Hello对象

希望本文所述对大家nodejs程序设计有所帮助。


# Node.js  # 文本  # 提交  # 显示  # node.js中的http.get方法使用说明  # node.js中的http.createServer方法使用说明  # node.js中的http.response.addTrailers方法使用说明  # node.js中的http.response.writeHead方法使用说明  # node.js中的http.request方法使用说明  # node.js+Ajax实现获取HTTP服务器返回数据  # 从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析  # 从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例  # 从零开始学习Node.js系列教程五:服务器监听方法示例  # 从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例  # 从零开始学习Node.js系列教程四:多页面实现的数学运算示例  # 从零开始学习Node.js系列教程三:图片上传和显示方法示例  # 从零开始学习Node.js系列教程一:http get和post用法分析  # 从零开始学习Node.js系列教程之设置HTTP头的方法示例  # 的是  # 给大家  # 所述  # 程序设计  # 讲述了  # 赋予了  # Request  # log  # received  # setEncoding  # postData  # response  # pathname  # console  # parse  # createServer  # chunk  # listen  # Server  # data 


相关文章: Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  网站设计制作公司地址,网站建设比较好的公司都有哪些?  如何解决ASP生成WAP建站中文乱码问题?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  临沂网站制作公司有哪些,临沂第四中学官网?  建站之星安装后如何配置SEO及设计样式?  如何用好域名打造高点击率的自主建站?  建站之星下载版如何获取与安装?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  python的本地网站制作,如何创建本地站点?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何在IIS7上新建站点并设置安全权限?  建站主机无法访问?如何排查域名与服务器问题  如何快速上传自定义模板至建站之星?  建站之星后台管理:高效配置与模板优化提升用户体验  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  建站之星代理如何获取技术支持?  建站主机如何选?高性价比方案全解析  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何选择可靠的免备案建站服务器?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  魔方云NAT建站如何实现端口转发?  家具网站制作软件,家具厂怎么跑业务?  如何快速搭建支持数据库操作的智能建站平台?  建站主机是什么?如何选择适合的建站主机?  Swift中switch语句区间和元组模式匹配  Swift中循环语句中的转移语句 break 和 continue  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  香港服务器部署网站为何提示未备案?  如何在Windows环境下新建FTP站点并设置权限?  制作表格网站有哪些,线上表格怎么弄?  建站之星代理费用多少?最新价格详情介绍  如何在服务器上配置二级域名建站?  如何用景安虚拟主机手机版绑定域名建站?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  Python文件管理规范_工程实践说明【指导】  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  网站网页制作专业公司,怎样制作自己的网页?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  红河网站制作公司,红河事业单位身份证如何上传? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。