这里有新鲜出炉的 Node.JS 入门教程,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
这篇文章主要介绍了 Node.js 文本提交与显示方法, 结合实例形式分析了 nodejs 基于 http 的文本提交、传输与显示相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 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 程序设计有所帮助。
(adsbygoogle = window.adsbygoogle || []).push({});
来源: http://www.phperz.com/article/17/0704/334081.html