node 跳转html文件,详解node服务器中打开html文件的两种方法

本文介绍了详解node服务器中打开html文件的两种方法,分享给大家,具体如下:

方法1:利用 Express 托管静态文件,

方法2:使用fs模块提供的readFile方法打开文件,让其以text/html的形式输出。

//方法1:通过express.static访问静态文件,这里访问的是ajax.html

// app.use(express.static("./"));

//方法2:使用fs.readFile打开html文件

app.get("/helloworld.html",function(request,response) {

fs.readFile("./"+request.path.substr(1),function(err,data){

// body

if(err){

console.log(err);

//404:NOT FOUND

response.writeHead(404,{"Content-Type":"text/html"});

}

else{

//200:OK

response.writeHead(200,{"Content-Type":"text/html"});

response.write(data.toString());

}

response.end();

});

});

app.listen(3000,function() { //监听http://127.0.0.1:3000端口

console.log("server start");

});

浏览器访问,分别输入http://127.0.0.1:3000/hello_static.html和http://127.0.0.1:3000/hello_fs.html,结果:

2017091810362828.png

2017091810362829.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用Node.js实现的多人聊天室的代码,以及使用Express框架实现跳转到聊天室页面的方法服务器端代码: 1. 导入模块和创建服务器 ```javascript const express = require('express'); const app = express(); const http = require('http').createServer(app); const io = require('socket.io')(http); ``` 首先导入了`express`、`http`和`socket.io`模块,然后创建了一个`express`应用程序对象`app`和一个`http`服务器对象`http`。使用`socket.io`模块将`http`服务器对象包装成一个`WebSocket`服务器,并将其传递给`io`对象。 2. 处理客户端连接请求和消息发送 ```javascript const users = []; io.on('connection', (socket) => { console.log('a user connected'); // 处理客户端连接请求 socket.on('login', (username) => { users.push({id: socket.id, username}); io.emit('userList', users); socket.broadcast.emit('message', {username: '系统消息', content: `${username}加入了聊天室`}); }); // 处理客户端消息发送 socket.on('message', (message) => { const user = users.find(u => u.id === socket.id); if (user) { io.emit('message', {username: user.username, content: message}); } }); // 处理客户端断开连接 socket.on('disconnect', () => { console.log('user disconnected'); const user = users.find(u => u.id === socket.id); if (user) { users.splice(users.indexOf(user), 1); io.emit('userList', users); socket.broadcast.emit('message', {username: '系统消息', content: `${user.username}离开了聊天室`}); } }); }); ``` 使用`io.on('connection', callback)`方法来处理客户端的连接请求。在回调函数,首先将新连接的客户端信息存储到一个数组`users`。当有客户端发送`login`事件时,将该客户端的用户名加入到`users`数组,并使用`io.emit()`方法向所有客户端广播用户列表和系统消息。当有客户端发送`message`事件时,将该消息广播给所有客户端。当有客户端断开连接时,将该客户端从`users`数组删除,并向所有客户端广播用户列表和系统消息。 客户端代码: 1. 连接服务器 ```javascript const socket = io(); socket.on('connect', () => { console.log('connected'); }); ``` 使用`io()`方法连接服务器,并使用`socket.on('connect', callback)`方法处理连接成功的事件。 2. 处理用户登录和消息发送 ```javascript const form = document.querySelector('form'); const input = document.querySelector('input'); const ul = document.querySelector('ul'); const userList = document.querySelector('#userList'); form.addEventListener('submit', (event) => { event.preventDefault(); const username = input.value.trim(); if (username) { socket.emit('login', username); form.style.display = 'none'; ul.style.display = 'block'; } }); socket.on('userList', (users) => { userList.innerHTML = ''; users.forEach(user => { const li = document.createElement('li'); li.textContent = user.username; userList.appendChild(li); }); }); socket.on('message', (message) => { const li = document.createElement('li'); li.textContent = `${message.username}: ${message.content}`; ul.appendChild(li); }); input.addEventListener('keyup', (event) => { if (event.keyCode === 13) { const message = input.value.trim(); if (message) { socket.emit('message', message); input.value = ''; } } }); ``` 使用`addEventListener()`方法处理表单的提交事件。当用户输入用户名并提交表单时,将该用户名发送给服务器。在`userList`事件,根据服务器返回的用户列表更新用户列表的显示。在`message`事件,根据服务器返回的消息更新消息列表的显示。使用`addEventListener()`方法处理输入框的按键事件。当用户在输入框按下回车键时,将输入框的消息发送给服务器。 使用Express框架实现跳转到聊天室页面的方法: 1. 安装Express框架 使用`npm`命令安装Express框架: ``` npm install express ``` 2. 创建Express应用程序对象 ```javascript const express = require('express'); const app = express(); ``` 创建一个`express`应用程序对象`app`。 3. 设置路由 ```javascript app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); ``` 使用`app.get()`方法设置路由。当用户访问根路径时,将`index.html`文件发送到客户端。 4. 启动服务器 ```javascript app.listen(8000, () => { console.log('listening on *:8000'); }); ``` 使用`app.listen()`方法启动服务器,并监听`8000`端口。 将以上代码保存为`app.js`文件,使用`node`命令运行该文件: ``` node app.js ``` 在浏览器访问`http://localhost:8000`,即可跳转到聊天室页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值