nodejs核心模块(http/path/url/querystring/fs)

本文详细介绍如何使用Node.js和Express框架搭建服务器,包括处理GET请求读取JSON文件、使用path模块构造路径、解析URL查询参数及处理POST请求等。同时介绍了如何利用querystring模块解析查询字符串,并展示了如何挂载静态资源。

fs

var fs=require('fs')
var express=require('express')
var app=express()

app.get('/',function(req,res){
    var data=JSON.parse(fs.readFileSync('./data.json'))//要用同步方法,待取到json对象后才能返回数据
    res.send(data)
    res.end()
})

path

var path=require('path')
path.join(pathname1,pathname2)//将两个路径连接成一个路径,此时路径从根目录开始
example:`app.set('views',path.join(__dirname,'views'))//用于存放模版文件的目录`

querystring

querystring博客

var qs=require('querystring')
//var query='name=quxy&age=18'
qs.parse(query)//返回{name:'quxy',age:'18'}
//var obj={name:'quxy',age:'18'}
qs.stringify(obj)//返回'name=quxy&age=18'

url

url模块博客

var url=require('url')
url.parse(req.url,true).query.name//可以通过url模块来获取query中的指定字段
url.parse(req.url)//返回对象,其中query值为字符串
url.parse(req.url,true)//返回对象,其中query值为对象
url.format(url)//url.parse的反向,合成url字符串

http

req常用属性和方法

var http=require('http')
http.createServer(function(req,res){}).listen(8000)//搭建服务器,监听http://127.0.0.1:8000
req.method//返回'GET' 'POST'等等,通过判断可以执行对应操作

req.url//返回路径字符串
//例如http://127.0.0.1:8000/path1/path2?name=quxy
//返回/path1/path2?name=quxy
//处理post访问
var query=''
req.on('data',function(chunk){
    query+=chunk
})
req.on('end',function(){
    res.end(query)//一个获取名字和年龄的表单提交后,返回name=quxy&age=18
})

res常用方法

res.writeHead(200,{'Content-Type':'text/html'})
res.writeHead(301,{Location:'/user?name=quxy'})//返回新的路径的页面
res.end()//必须加,表示服务器本次返回结束

挂载静态文件(例如css js)

var fs=require('fs')
function sendFile(res,filePath,mime){
    res.writeHead(200,{'Content-Type':mime})
    res.end(fs.readFileSync(filePath))
}

http.createServer(function(req,res){
    switch(req.url){
        case '/style.css':
            sendFile(res,'./style.css','text/css')
        break;
        case '/style.js':
        sendFile(res,'./style.js','text/javascript')
        break;
        default:
            res.writeHead(200,{'Content-Type':'text/html'})
            res.end(fs.readFileSync('./index.html'))
        break;
    }
})
var jade=require('jade')
res.end(jade.renderFile('index.jade',{name:'quxy'}))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值