国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 16:50:25
字體:
供稿:網(wǎng)友

本文實(shí)例講述了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:

知識點(diǎn):

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; //此時(shí)我們在其他文件中需要通過 require('./hello').Hello來獲取Hello對象,這種寫法有點(diǎn)冗余module.exports = Hello; //輸出的就是Hello對象本身,不是上面的exports,上面的是暴露.Hello,.Hello賦予了Hello對象

希望本文所述對大家nodejs程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 景洪市| 仁布县| 理塘县| 房山区| 呼玛县| 云浮市| 巴彦淖尔市| 昭平县| 宁远县| 汉源县| 长兴县| 溧水县| 印江| 内黄县| 明星| 泸定县| 永顺县| 马鞍山市| 化隆| 临洮县| 建瓯市| 西藏| 班戈县| 交口县| 无棣县| 合川市| 黄陵县| 黎平县| 桃江县| 拉萨市| 黄龙县| 陕西省| 乳源| 武隆县| 吴忠市| 泗阳县| 崇仁县| 平安县| 双牌县| 阿坝县| 宁明县|