目录
返回一个静态页面
根据路由返回对应的页面
文件目录如下所示
app.js代码
const fs = require('fs');const http = require('http');// 创立一个f服务器let server = http.createServer((req, res) => { // fs.readFile(文件路径,字符编码,回调函数) fs.readFile(__dirname + "/index.html", "utf-8", (err, data) => { if(err) throw err; // 响应头 response.writeHead(状态吗, 内容的格式[这里返回的文件是html]) res.writeHead(200, {"content-type": "text/html"}); // 响应内容 res.write(data); // 响应结束 res.end(); })})// 设置端口号server.listen(8080);console.log('服务器已启动~~');
index.html代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>index</title></head><body> <h1>Rabbit!</h1></body></html>
最后,在浏览器访问 localhost:8080
上面的例子中,不论访问 localhost:8080 还是 localhost:8080/xxxx ,服务器都是返回 index.html 的内容。
假如需要根据url指定返回不同的页面,这就需要引入路由这个概念了。
文件目录如下
这里有2个html文件和一个js文件。
在app.js中,需要根据 url 来判断返回哪个页面
const fs = require('fs');const http = require('http');let server = http.createServer((req, res) => { // 过滤 /favicon.ico 的请求 if(req.url !== '/favicon.ico') { // '/' 和 'index' 都返回 index.html 页面,其余都请求就返回对应的页面路径 let getUrl = req.url === '/' ? '/index.html' : req.url; // fs.readFile(文件路径,字符编码,回调函数) fs.readFile(__dirname + getUrl + '.html', "utf-8", (err, data) => { if(err) throw err; // 响应头 response.writeHead(状态吗, 内容的格式) res.writeHead(200, {"content-type": "text/html"}); // 响应内容 res.write(data); // 响应结束 res.end(); }) }})server.listen(8080);console.log('服务器已启动~~');
index.html代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>index</title></head><body> <h1>Rabbit!</h1></body></html>
about.html代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>about</title></head><body> <p>about~~~~</p></body></html>
当浏览器访问 localhost:8080 或者者 localhost:8080/index ,就返回 index.html页面。
当访问 localhost:8080/about 时,就返回about.html页面
以上是简单的用法。