nodejs学习笔记(1)
index.js:
var server=require("./server")
var router=require("./router")
server.start(router.route)
server.js:
//从nodejs获取http对象并赋值给本地变量http
var http=require("http")
//同上
var url=require("url")
// http.createServer(function(request,response){
// console.log("ok")
// response.writeHead(200,{"Content-Type":"text/plain"})
// response.write("hello world")
// response.end()
// }).listen(8888)
function start(route){
function onRequest(request,response){
var pathname=url.parse(request.url).pathname;
console.log("request for "+pathname+"received")
route(pathname)
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
router.js:
function route(pathname){
console.log("about to route a request for "+pathname)
}
exports.route=route;
总体分析:index.js 变量server,router 分别获取js模块。
server模块:获取nodejs对象http和url。定义一个start函数,唯一参数是一个函数route.函数内部也有一个函数onRequest.有两个参数,request,response(均为nodejs对象)。语句var pathname=url.parse(request.url).pathname--解析url
route(pathname)调用router.js。调用route(pathname)函数。response.writeHead(200,{"content-type":"text/plain"}).response.write("hello world").最后response.end()
心得:js匿名函数可以多加使用