您的位置:首页 > Web前端 > Node.js

Node.js —— 两种方式发送单页面

2018-09-28 21:58 190 查看

1、安装socket.io和express和生成package.json

[code]npm install socket.io --save
[code]npm install --save express
[code]nam init

2、app.js

[code]const express = require('express');
const app = express();               // 创建一个express程序,赋值给app。
const fs = require('fs');            // 这个是node的文件读取模块,用于读取文件
const path = require('path');        // 这是node的路径处理模块,可以格式化路径
app.listen(3000,()=>{                // ()=>是箭头函数,ES6语法,相当于 function()
console.log("server running at 127.0.0.1:3000");       // 监听3000端口,然后执行回调函数在控制台输出。
});

/**
* app.get(): express中的一个中间件,用于匹配get请求,所谓中间件就是在该轮http请求中依次执行的一系列函数。
* '/': 它匹配get请求的根路由 '/'也就是 127.0.0.1:3000/就匹配到他了
* (req,res): ES6语法的箭头函数,你暂时可以理解为function(req,res){}。
* req带表浏览器的请求对象,res代表服务器的返回对象
*/
app.get('/',(req,res)=>{
res.redirect('/chat.html');       // express的重定向函数。如果浏览器请求了根路由'/',浏览器就给他重定向到 '127.0.0.1:3000/chat.html'路由中
});

第一种发送方式

[code]app.get('/chat.html',function (req,res) {
fs.readFile(path.join(__dirname,'/chat.html'),function(err,data){       //读取文件,readFile里传入的是文件路径和回调函数,这里用path.join()格式化了路径。
if(err){
console.error("读取chat.html发生错误",err);                    //错误处理
res.send('4 0 4');                                           //如果发生错误,向浏览器返回404
} else {
res.end(data);                  //这里的data就是回调函数的参数,在readFile内部已经将读取的数据传递给了回调函数的data变量。
}                                    //我们将data传到浏览器,就是把html文件传给浏览器
})
});

第二种发送方式

[code]/**
* __dirname表示当前文件所在的绝对路径,所以我们使用path.join将app.js的绝对路径和public加起来就得到了public的绝对路径。
* 用path.join是为了避免出现 ././public 这种奇怪的路径
* express.static就帮我们托管了public文件夹中的静态资源。
* 只要有 127.0.0.1:3000/XXX/AAA 的路径都会去public文件夹下找XXX文件夹下的AAA文件然后发送给浏览器。
*/
app.use('/',express.static(path.join(__dirname,'./')));

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: