全栈:静态网站(__dirname 、__filename)
实例1:
//静态网站1———— var http = require('http') var fs = require("fs") var app = http.createServer((req, res) => { //前端的每一次网络请求 这个函数都会重新运行一次 if (req.url == '/home') { fs.readFile("./index.html", (err, data) => { res.setHeader("content-Type", "text/html;charse=:utf8") if (!err) { res.end(data) } }) } else if (req.url == '/bird.png') { fs.readFile('./bird.png', (err, data) => { res.setHeader("content-Type", "image/png") // console.log(err,data) res.end(data) }) } else if (req.url == '/a') { fs.readFile('./index.html', (err, data) => { res.setHeader("content-Type","text/html;charset=utf8") // console.log(err,data) res.end(data) }) } else { res.end("404") } }) app.listen(8082)
__dirname 、__filename
// __dirname // 在node.js环境中 有两个全局变量:__dirname __filename // 保存的是字符串 // __dirname(当前js文件所在目录的绝对路径) // __filename(当前js文件的目录绝对路径) console.log(111, __dirname, __filename, 222); var fs = require("fs") fs.readFile(__dirname + "/index.html", (err, data) => { console.log(err, data.toString()); }) fs.readFile(__filename + "/index.html", (err, data) => { console.log(err, data.toString()); })
实例2:
后端代码
//静态网站2———— var http = require("http") var fs = require("fs") var app = http.createServer((req, res) => { console.log(req.url); fs.readFile(__dirname + req.url, (err, data) => { res.end(data) }) 用req.url替代每次条件判断: // if (req.url == '/index.html') { // fs.readFile(__dirname + '/index.html', (err, data) => { // res.end(data.toString()) // }) // } // else if (req.url == '/img/bird.jpg') { // fs.readFile(__dirname + '/img/bird.jpg', (err, data) => { // res.end(data) // }) // } // else if (req.url == '/css/index.css') { // fs.readFile(__dirname + '/css/index.css', (err, data) => { // res.end(data) // }) // } else if (req.url == '/font/字体.ttf') { // fs.readFile(__dirname + '/font/字体.ttf', (err, data) => { // res.end(data) // }) // } // else if (req.url == '/favicon.ico') { // fs.readFile(__dirname + '/favicon.ico', (err, data) => { // res.end(data) // }) // } // else if (req.url == "text.html") { // fs.readFile(__dirname + "text.html", (err, data) => { // res.end(data) // }) // } }) app.listen(8082)