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匿名函数可以多加使用