先creat一个server,index.html是我们的模板,在node不操作dom,bom对象的,通过fs的readfile读取文件,然后res对象的end()发放,把二进制数据或者字符串还给浏览器解析。这边我们通过开放public目录,让客户端可以请求我们的公共静态数据,里面包括css,img,啥的。
先放一下文件目录跟简单代码
var http = require('http')
var fs = require('fs')
http
.createServer(function(req,res){
var url = req.url
if (url==='/'){
fs.readFile('./views/index.html',function(err,data){
if (err) {
return res.end('404 not found')
}
res.end(data)
})
}else if (url.indexOf('/public/')===0) {
// /public/css/main.css
// /public/js/main.js
// 统一处理:
// 如果请求路径是以/public/开头的,则我认为你要获取public中的某个资源
// 所以我们就直接可以把请求路径当作文件路径来进行读取
// 之前这里一直很纠结的是为什么会有else if,在我的印象中好像url选择了'/'就不会再继续执行了,但是其实是我钻牛角尖
// 因为我们这里是个服务器,会不断地接受请求,执行了第一次'/'以后,打开index.html后,会形成新的url发送请求,重建req对象,里面url也是变化的。
// console.log(url)
fs.readFile('.'+url,function(err,data){
if (err) {
return res.end('404 not f