Express_html_socket.io

1.初始化和安装项目依赖

npm init //注意license写MIT
npm i express socket.io
npm i -D nodemon //自动重启服务器

//package.json修改一下
"scripts": {
        "start": "node server.js",
        "dev": "nodemon server.js"
    },
//这样直接写npm run dev,替代了node server.js

2.server.js

const express = require('express')
const app = express()
const server = require('http').createServer(app)

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html')
})
const port = process.env.PORT

server.listen(port, () => {
    console.log('server is running ')
})

创建好了服务器,加上socket

const express = require('express')
const app = express()
const server = require('http').createServer(app);
const io = require('socket.io')(server);

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html')
})

io.on('connection', socket => {
    console.log('a user connected')

    socket.on('disconnect', () => {
        console.log('user disconnected')
    })
})

const port = process.env.PORT||5000
server.listen(port, () => {
    console.log('server is running ')
})

3.写html

 手册 - Materialize - 中文站 (materializecss.cn)

=>html setup拷贝过来

=>CDN替换一下样式

<!DOCTYPE html>
<html>

<head>
    <!--Import Google Icon Font-->
    <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <!--Import materialize.css-->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/css/materialize.min.css">
    <!--Let browser know website is optimized for mobile-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Let's Chat!</title>
</head>

<body>
    <!--Import jQuery before materialize.js-->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/css/materialize.min.css">
</body>

</html>

启动服务器,访问127.0.0.1:5000可以看到let's chat

最终代码:

<!DOCTYPE html>
<html>

<head>
    <!--Import Google Icon Font-->
    <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <!--Import materialize.css-->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/css/materialize.min.css">
    <!--Let browser know website is optimized for mobile-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Let's Chat!</title>
</head>

<body>
    <nav>
        <div class="nav-wrapper teal lighten-2">
            <a href="" class="brand-logo center">Let's Chat</a>
        </div>
    </nav>
    <br><br>

    <div class="row">
        <div class="col s4">
            <h3 class="flow-text center teal-text text-lighten-1">
                CONNECTED USER </h3>
            <ul class="collection" id="user-list"></ul>
        </div>
        <div class="col s8" style="display:none">
            <div class="card bule-grey darken-1">
                <div id="messages" class=" card-content white-text ">
                    <div class="card-action white">
                        <form id="message-form">
                            <div class="input-field">
                                <textarea type="text" id="textarea" class="materialize-textarea"></textarea>
                                <label class="active" for="textarea">MESSAGE</label>
                            </div>
                            <div class="right-align">
                                <button class="btn waves-effect waves-light btn-small" type="submit" name="action">SEND
                                    <i class="material-icons right">send</i>
                                </button>
                            </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="col s8" style="display:block">
            <div class="card">
                <div class="card-content">
                    <span class="card-title teal-text text-lighten-1">Give yourself a nickname</span>
                    <form id="login-form">
                        <div class="input-field">
                            <input type="text" id="name">
                            <label class="active" for="name">Name</label>
                        </div>
                        <div class="right-align">
                            <button class="btn waves-effect waves-light btn-small" type="submit" name="action">Let's Chat!
                                <i class="material-icons right">chat</i>
                            </button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
        <!--Import jQuery before materialize.js-->
        <link rel=" stylesheet " href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/css/materialize.min.css ">
</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值