独自搭建高级Web交互网站的完整指南

2 篇文章 0 订阅

引言

在现代互联网时代,独自搭建一个Web交互网站已成为许多开发者的必备技能,通过这个过程不仅能提高编程能力,还能深入了解Web开发的各个方面,本文将介绍如何从零开始搭建一个高级的Web交互网站,并提供一些高级的开发示例,包括注册域名,购入云服务器或本地服务器的具体步骤,最后附上GitHub上的优质开源项目供大家参考

体系结构简述

准备工作

在开始之前,你需要准备以下工具和环境

  1. 计算机和操作系统:一台运行良好的计算机,建议使用较新的操作系统,如Windows 10,macOS,或者Linux
  2. 文本编辑器或IDE:推荐使用Visual Studio Code,Sublime Text,或者JetBrains的WebStorm
  3. 开发工具链:确保已安装Node.js及其包管理器npm,另外还需要安装Git以便于版本控制
  4. 网络知识:了解HTTP/HTTPS协议,熟悉HTML,CSS,JavaScript的基本知识

注册域名

选择一个域名注册服务商,如Namecheap,GoDaddy,或阿里云,并注册你想要的域名,以下是Namecheap的例子

  1. 访问Namecheap官网
  2. 搜索你想要的域名
  3. 将域名添加到购物车并完成购买

购入云服务器或本地服务器

选择一个云服务器提供商,如Amazon AWS,Google Cloud Platform,或阿里云,并购入一个虚拟服务器,以下是Amazon AWS的例子

  1. 访问Amazon AWS官网
  2. 注册并登录AWS账户
  3. 进入EC2控制台,点击“Launch Instance”
  4. 选择一个适合的操作系统(建议使用Ubuntu)
  5. 选择一个实例类型(t2.micro适合初学者)
  6. 配置实例细节并启动实例

服务器配置

连接到你的云服务器并安装必要的工具

  1. 使用SSH连接到你的云服务器
  2. 更新包管理器
sudo apt update
  1. 安装Node.js和npm
sudo apt install nodejs npm
  1. 安装Git
sudo apt install git

创建项目

首先,在你的计算机上创建一个新的项目文件夹,打开终端并导航到该文件夹,然后运行以下命令来初始化一个新的Node.js项目

npm init -y

接下来,安装一些必要的依赖包

npm install express body-parser mongoose ejs

这些包分别是用于创建服务器,解析请求体,连接MongoDB数据库,以及使用EJS模板引擎

搭建服务器

在项目根目录下创建一个名为server.js的文件,并添加以下代码

const express = require('express')
const bodyParser = require('body-parser')
const mongoose = require('mongoose')

const app = express()
const port = 3000

mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })

app.use(bodyParser.urlencoded({ extended: true }))
app.use(express.static('public'))

app.set('view engine', 'ejs')

app.get('/', (req, res) => {
  res.render('index')
})

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`)
})

创建前端页面

在项目根目录下创建一个名为views的文件夹,并在其中创建一个index.ejs文件,添加以下代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Web Interaction</title>
</head>
<body>
    <h1>欢迎来到Web交互网站</h1>
    <form action="/submit" method="POST">
        <input type="text" name="userInput" placeholder="输入一些内容">
        <button type="submit">提交</button>
    </form>
</body>
</html>

处理用户输入

server.js文件中添加以下代码来处理用户提交的数据

app.post('/submit', (req, res) => {
  const userInput = req.body.userInput
  console.log(userInput)
  res.redirect('/')
})

高级开发示例

用户认证

使用JWT(JSON Web Token)实现用户认证

安装必要的依赖包

npm install jsonwebtoken bcryptjs

server.js中添加用户模型和认证逻辑

const jwt = require('jsonwebtoken')
const bcrypt = require('bcryptjs')

const UserSchema = new mongoose.Schema({
  username: String,
  password: String
})

const User = mongoose.model('User', UserSchema)

app.post('/register', async (req, res) => {
  const { username, password } = req.body
  const hashedPassword = await bcrypt.hash(password, 10)
  const user = new User({ username, password: hashedPassword })
  await user.save()
  res.redirect('/')
})

app.post('/login', async (req, res) => {
  const { username, password } = req.body
  const user = await User.findOne({ username })
  if (user && await bcrypt.compare(password, user.password)) {
    const token = jwt.sign({ userId: user._id }, 'secretKey', { expiresIn: '1h' })
    res.json({ token })
  } else {
    res.status(401).send('Invalid credentials')
  }
})

实时数据更新

使用Socket.io实现实时数据更新

安装Socket.io

npm install socket.io

server.js中设置Socket.io

const http = require('http')
const socketIo = require('socket.io')

const server = http.createServer(app)
const io = socketIo(server)

io.on('connection', (socket) => {
  console.log('A user connected')
  socket.on('disconnect', () => {
    console.log('User disconnected')
  })
})

server.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`)
})

在前端页面中引入Socket.io并实现简单的实时消息功能

<script src="/socket.io/socket.io.js"></script>
<script>
  const socket = io()
  socket.on('connect', () => {
    console.log('Connected to server')
  })
</script>

部署和重启

将代码部署到你的云服务器上,使用Git进行版本控制

  1. 在本地创建Git仓库
git init
git add .
git commit -m "Initial commit"
  1. 在云服务器上克隆你的仓库
git clone <your-repo-url>
  1. 在云服务器上安装pm2以管理和重启应用
sudo npm install -g pm2
pm2 start server.js
  1. 设置pm2为系统重启后自动启动
pm2 startup
pm2 save

GitHub优质开源项目推荐

如果你觉得我写的文章对你有所帮助,那么请点赞并关注支持一下作者!谢谢各位 😁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值