最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從零開始學(xué)習(xí)Node.js系列教程二:文本提交與顯示方法

 更新時間:2017年04月13日 10:33:19   作者:MIN飛翔  
這篇文章主要介紹了Node.js文本提交與顯示方法,結(jié)合實例形式分析了nodejs基于http的文本提交、傳輸與顯示相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了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程序設(shè)計有所幫助。

相關(guān)文章

  • nodejs用gulp管理前端文件方法

    nodejs用gulp管理前端文件方法

    本篇文章給大家分享了nodejs用gulp管理前端文件的步驟方法以及優(yōu)缺點分析,有興趣的朋友參考下。
    2018-06-06
  • 利用n工具輕松管理Node.js的版本

    利用n工具輕松管理Node.js的版本

    我們在測試寫的Nodejs的程序在不同Nodejs版本下是否能正常運行,或是我們想要嘗試下最新版 Nodejs 的新特性,但常用的代碼需要舊版本的 Nodejs的時候就需要用 Node 版本管理工具,本文介紹的是利用n工具如何輕松管理Node.js的版本,需要的朋友可以參考下。
    2017-04-04
  • WebSocket實現(xiàn)簡單客服聊天系統(tǒng)

    WebSocket實現(xiàn)簡單客服聊天系統(tǒng)

    這篇文章主要為大家詳細介紹了WebSocket實現(xiàn)簡單客服聊天系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • nodejs連接mysql數(shù)據(jù)庫及基本知識點詳解

    nodejs連接mysql數(shù)據(jù)庫及基本知識點詳解

    這篇文章主要介紹了nodejs連接mysql數(shù)據(jù)庫,結(jié)合實例形式總結(jié)分析了nodejs連接與操作mysql數(shù)據(jù)庫的相關(guān)模板、配置及mysql數(shù)據(jù)庫查詢、添加數(shù)據(jù)等操作技巧,需要的朋友可以參考下
    2018-03-03
  • NodeJS提供了的文件操作相關(guān)的API

    NodeJS提供了的文件操作相關(guān)的API

    讓前端覺得如獲神器的不是NodeJS能做網(wǎng)絡(luò)編程,而是NodeJS能夠操作文件,小至文件查找,大至代碼編譯,幾乎沒有一個前端工具不操作文件,換個角度講,幾乎也只需要一些數(shù)據(jù)處理邏輯,再加上一些文件操作,就能夠編寫出大多數(shù)前端工具
    2023-11-11
  • 在Node.js下運用MQTT協(xié)議實現(xiàn)即時通訊及離線推送的方法

    在Node.js下運用MQTT協(xié)議實現(xiàn)即時通訊及離線推送的方法

    這篇文章主要介紹了在Node.js下運用MQTT協(xié)議實現(xiàn)即時通訊及離線推送的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • node-sass常見報錯的問題及解決方法

    node-sass常見報錯的問題及解決方法

    在安裝node-sass時,經(jīng)常會遇到下載慢、版本不匹配或python錯誤等問題,使用淘寶鏡像加速下載、通過nvm管理node版本或指定node-sass版本號安裝,都能有效解決這些問題,若遇到python相關(guān)錯誤,檢查node版本是否合適通??梢越鉀Q,感興趣的朋友一起看看本文吧
    2024-09-09
  • NodeJS加密解密及node-rsa加密解密用法詳解

    NodeJS加密解密及node-rsa加密解密用法詳解

    要用nodejs開發(fā)接口,實現(xiàn)遠程調(diào)用,如果裸奔太危險了,就在網(wǎng)上找了一下nodejs的加密,感覺node-rsa挺不錯的,下面來總結(jié)一下簡單的rsa加密解密用法,需要的朋友可以參考下
    2018-10-10
  • 基于Koa2寫個腳手架模擬接口服務(wù)的方法

    基于Koa2寫個腳手架模擬接口服務(wù)的方法

    這篇文章主要介紹了基于Koa2寫個腳手架模擬接口服務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • node.js如何充分利用多核cpu

    node.js如何充分利用多核cpu

    這篇文章主要介紹了node.js如何充分利用多核cpu,想了解node.js的同學(xué),可以參考下
    2021-04-04

最新評論

浦东新区| 武穴市| 宁远县| 武宁县| 张北县| 诸暨市| 依安县| 汝阳县| 余江县| 抚顺县| 金塔县| 耒阳市| 西林县| 新民市| 太湖县| 吉安市| 安塞县| 丽水市| 从江县| 青龙| 宁安市| 重庆市| 岳普湖县| 巢湖市| 泸定县| 新田县| 柘城县| 炉霍县| 连云港市| 阿拉善左旗| 克什克腾旗| 卢湾区| 大连市| 手游| 太原市| 治多县| 罗平县| 临湘市| 阿拉善右旗| 西贡区| 揭东县|