您的位置:首页 > Web前端 > Node.js

node.js的学习

2013-09-19 19:43 295 查看
require('http') 内置模块

server.js

var http = require('http');

function start(){

server = http.createServer(function (req, res) {

res.writeHeader(200, {"Content-Type": "text/plain"});

res.end("Hello oschina\n");

})

server.listen(8000);

console.log("httpd start @8000");

}

exports.start = start;

index.js

//路径根据自己的实际情况而定

var server = require("./nodejs/server");

server.start();

随后执行 node index.js ,打开网页输入localhost:8000 你就可以看见hello world!了。

我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码(这里“代码”对应整个应用的第三部分:一系列在接收到请求时真正工作的处理程序)。

因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)确实值得探讨,但这里暂定其为我们的HTTP服务器的功能。

我们需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.JS模块,它们分别是url和querystring模块。

url.parse(string).query
|
url.parse(string).pathname |
| |
| |
------ ------------------- http://localhost:8888/start?foo=bar&hello=world --- -----
| |
| |
querystring(string)["foo"] |
|
querystring(string)["hello"]

现在我们可以来编写路由了,建立一个名为router.js的文件

function route(pathname) {

console.log("About to route a request for " + pathname);

}

exports.route = route;

编写处理请求的页面,建立一个名为server.js的文件

var http = require("http");

var url = require("url");

function start(route) {

function onRequest(request, response) {

var pathname = url.parse(request.url).pathname;

console.log("Request for " + pathname + " received.");

route(pathname);

//在这里我们就可以对不同的路径进行不同处理

//if(pathname=="") response.writeHead不同的信息之类的

response.writeHead(200, {"Content-Type": "text/plain"});

response.write("Hello World");

response.end();

}

http.createServer(onRequest).listen(8888);

console.log("Server has started.");

}

exports.start = start;

启动模块,index.js

var server = require("./server");

var router = require("./router");

server.start(router.route);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: