第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

前端全棧開發(fā)入門指南

概述

本文全面介绍了前端全栈开发的基础知识,包括HTML、CSS和JavaScript的入门教程,以及Vue.js和React.js等前端框架的快速上手指南。此外,文章还详细讲解了如何使用Node.js和Express.js搭建后端服务器,并提供了部署静态网站和在线商城的实际案例,助力读者掌握前端全栈开发的技能。

前端基础知识
HTML基础语法

HTML(HyperText Markup Language)是构成网页的基础语言。HTML文档是由一系列标签和内容组成的结构化文本文件,这些标签用于定义网页上的元素,如标题、段落、列表、链接等。下面是一些基本的HTML标签和它们的作用:

基本标签

  • <html>:HTML文档的根元素。
  • <head>:包含文档的元数据,如<title>标签。
  • <title>:定义HTML文档的标题。
  • <body>:包含文档的所有可见内容。
<!DOCTYPE html>
<html>
<head>
    <title>我的第一个网页</title>
</head>
<body>
    <h1>欢迎来到我的网站</h1>
    <p>这是一个简单的HTML网页。</p>
</body>
</html>

常用标签

  • <h1><h6>:定义标题,<h1>是最重要的标题,而<h6>是最不重要的标题。
  • <p>:定义段落。
  • <a>:定义链接。
  • <img>:定义图片。
  • <ul><ol><li>:定义无序列表和有序列表。
  • <div>:定义一个块级容器。
  • <span>:定义一个内联容器。
<!DOCTYPE html>
<html>
<head>
    <title>我的第一个网页</title>
</head>
<body>
    <h1>欢迎来到我的网站</h1>
    <p>这是一个简单的HTML网页。</p>
    <a href="http://idcbgp.cn/">慕课网</a>
    <img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://example.com/image.jpg" alt="示例图片">
    <ul>
        <li>项目1</li>
        <li>项目2</li>
        <li>项目3</li>
    </ul>
    <ol>
        <li>步骤1</li>
        <li>步骤2</li>
        <li>步骤3</li>
    </ol>
    <div>这是一个块级元素。</div>
    <span>这是一个内联元素。</span>
</body>
</html>

表格

表格使用<table><tr><th><td>等标签来定义。<table>定义表格,<tr>定义表格行,<th>定义表头单元格,<td>定义单元格。

<!DOCTYPE html>
<html>
<head>
    <title>数据表格</title>
</head>
<body>
    <table>
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>职业</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>25</td>
            <td>程序员</td>
        </tr>
        <tr>
            <td>李四</td>
            <td>30</td>
            <td>设计师</td>
        </tr>
    </table>
</body>
</html>
CSS样式入门

CSS(Cascading Style Sheets)用于定义HTML文档的样式。通过CSS,可以控制页面的颜色、布局、字体、边距、边框等视觉效果,使网页更具个性化。

基本选择器

  • 元素选择器:通过元素名选择所有相同的元素。
  • 类选择器:通过类名选择特定的元素。
  • ID选择器:通过ID名选择特定的元素。
/* 元素选择器 */
p {
    color: red;
    font-size: 16px;
}

/* 类选择器 */
.highlight {
    background-color: yellow;
}

/* ID选择器 */
#header {
    color: blue;
    font-weight: bold;
}

样式属性

  • color:定义文本颜色。
  • background-color:定义背景颜色。
  • font-size:定义字体大小。
  • font-family:定义字体样式。
  • text-align:定义文本对齐方式。
  • margin:定义元素周围的空白区域。
  • padding:定义元素内部的空白区域。
  • border:定义元素的边框。
/* 设置p元素的样式 */
p {
    color: red;
    background-color: yellow;
    font-size: 16px;
    font-family: Arial, sans-serif;
    text-align: center;
    margin: 10px;
    padding: 10px;
    border: 2px solid black;
}

样式继承

CSS样式具有继承性,子元素通常会继承父元素的某些样式。例如,父元素的字体颜色会传递给子元素。

<!DOCTYPE html>
<html>
<head>
    <title>样式继承示例</title>
    <style>
        body {
            color: blue;
        }
    </style>
</head>
<body>
    <p>这是父元素的文字。</p>
    <div>
        <p>这是子元素的文字。</p>
    </div>
</body>
</html>

样式优先级

选择器的优先级决定了样式的最终效果。优先级顺序通常是:行内样式 > ID选择器 > 类选择器 > 元素选择器。

<!DOCTYPE html>
<html>
<head>
    <title>样式优先级示例</title>
    <style>
        p {
            color: red;
        }
        .highlight {
            color: green;
        }
        #highlight {
            color: blue;
        }
    </style>
</head>
<body>
    <p>默认颜色是红色。</p>
    <p class="highlight">这个元素是绿色。</p>
    <p id="highlight">这个元素是蓝色。</p>
</body>
</html>
JavaScript入门

JavaScript是一种广泛用于Web开发的编程语言,可以用来处理用户输入、控制网页内容、操作HTML元素等。JavaScript与HTML和CSS结合,可以使网页更加动态和交互性。

基本语法

JavaScript的基本语法包括变量声明、数据类型、条件语句、循环语句等。

// 变量声明
let message = "Hello, world!";
let number = 42;
let isTrue = true;

// 输出变量
console.log(message); // Hello, world!
console.log(number); // 42
console.log(isTrue); // true

// 条件语句
if (isTrue) {
    console.log("条件为真");
} else {
    console.log("条件为假");
}

// 循环语句
for (let i = 0; i < 5; i++) {
    console.log(i); // 输出 0 到 4
}

DOM操作

通过DOM(Document Object Model),可以动态地操作HTML文档。以下是一个简单的示例,展示了如何使用JavaScript添加和删除HTML元素。

<!DOCTYPE html>
<html>
<head>
    <title>DOM操作示例</title>
</head>
<body>
    <p id="myParagraph">这是一个段落。</p>
    <button onclick="addParagraph()">添加段落</button>
    <button onclick="removeParagraph()">删除段落</button>
    <script>
        function addParagraph() {
            let newParagraph = document.createElement("p");
            newParagraph.textContent = "添加的段落";
            document.body.appendChild(newParagraph);
        }

        function removeParagraph() {
            let paragraph = document.getElementById("myParagraph");
            paragraph.parentNode.removeChild(paragraph);
        }
    </script>
</body>
</html>

事件处理

事件处理是JavaScript的重要功能之一,通过事件处理可以响应用户的操作,如点击按钮、提交表单等。

<!DOCTYPE html>
<html>
<head>
    <title>事件处理示例</title>
</head>
<body>
    <button id="myButton">点击我</button>
    <script>
        let button = document.getElementById("myButton");
        button.addEventListener("click", function() {
            alert("你点击了按钮");
        });
    </script>
</body>
</html>

异步编程

JavaScript支持异步编程,通过setTimeoutsetInterval函数可以实现延时执行和定时执行。

// 延时执行
setTimeout(function() {
    console.log("延时执行");
}, 3000);

// 定时执行
let timerId = setInterval(function() {
    console.log("定时执行");
}, 1000);

// 清除定时器
clearInterval(timerId);
前端框架与库
Vue.js快速上手

Vue.js是一个轻量级的前端框架,用于构建用户界面。Vue.js的核心功能包括数据绑定、组件系统、路由管理等。

安装与初始化

首先,需要安装Vue.js。可以通过CDN引入:

<!DOCTYPE html>
<html>
<head>
    <title>Vue.js示例</title>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
    <div id="app">
        {{ message }}
    </div>
    <script>
        let app = new Vue({
            el: '#app',
            data: {
                message: 'Hello, Vue.js!'
            }
        });
    </script>
</body>
</html>

数据绑定

Vue.js使用v-bindv-model指令进行数据绑定。v-bind用于绑定属性值,v-model用于双向数据绑定。

<!DOCTYPE html>
<html>
<head>
    <title>数据绑定示例</title>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
    <div id="app">
        <p>{{ message }}</p>
        <input v-model="message">
    </div>
    <script>
        let app = new Vue({
            el: '#app',
            data: {
                message: 'Hello, Vue.js!'
            }
        });
    </script>
</body>
</html>

组件

Vue.js使用组件系统来构建复杂的用户界面。组件可以复用,降低代码冗余。

<!DOCTYPE html>
<html>
<head>
    <title>组件示例</title>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
    <div id="app">
        <my-component v-for="item in items" :message="item"></my-component>
    </div>
    <script>
        Vue.component('my-component', {
            props: ['message'],
            template: '<p>{{ message }}</p>'
        });
        let app = new Vue({
            el: '#app',
            data: {
                items: ['Hello', 'World', 'Vue']
            }
        });
    </script>
</body>
</html>
React.js入门教程

React.js是Facebook开发的一个用于构建用户界面的JavaScript库。React.js的核心特性包括虚拟DOM、组件化开发、状态管理等。

安装与初始化

首先,需要安装React.js。可以通过CDN引入:

<!DOCTYPE html>
<html>
<head>
    <title>React.js示例</title>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/react@17/umd/react.development.js"></script>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/babel-standalone@6.26.0/babel.min.js"></script>
</head>
<body>
    <div id="root"></div>
    <script type="text/babel">
        const element = <h1>Hello, React!</h1>;
        ReactDOM.render(
            element,
            document.getElementById('root')
        );
    </script>
</body>
</html>

数据绑定

React.js使用JSX语法进行数据绑定。JSX是JavaScript和XML的结合,可以使HTML标签和JavaScript语法无缝结合。

<!DOCTYPE html>
<html>
<head>
    <title>数据绑定示例</title>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/react@17/umd/react.development.js"></script>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/babel-standalone@6.26.0/babel.min.js"></script>
</head>
<body>
    <div id="root"></div>
    <script type="text/babel">
        const element = (
            <h1>{'Hello, React!'}</h1>
        );
        ReactDOM.render(
            element,
            document.getElementById('root')
        );
    </script>
</body>
</html>

组件

React.js使用组件系统来构建复杂的用户界面。组件可以复用,降低代码冗余。

<!DOCTYPE html>
<html>
<head>
    <title>组件示例</title>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/react@17/umd/react.development.js"></script>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/babel-standalone@6.26.0/babel.min.js"></script>
</head>
<body>
    <div id="root"></div>
    <script type="text/babel">
        const MyComponent = (props) => (
            <p>{props.message}</p>
        );
        const element = (
            <div>
                <MyComponent message="Hello, World!" />
                <MyComponent message="Hello, React!" />
            </div>
        );
        ReactDOM.render(
            element,
            document.getElementById('root')
        );
    </script>
</body>
</html>
Bootstrap基础使用

Bootstrap是一个流行的前端框架,用于快速构建响应式和移动优先的网站。Bootstrap提供了许多预定义的CSS类和组件,如按钮、导航、表格、模态框等。

安装与引入

可以通过CDN引入Bootstrap:

<!DOCTYPE html>
<html>
<head>
    <title>Bootstrap示例</title>
    <link rel="stylesheet" >
</head>
<body>
    <button type="button" class="btn btn-primary">Primary Button</button>
    <button type="button" class="btn btn-secondary">Secondary Button</button>
</body>
</html>

布局与栅格系统

Bootstrap使用栅格系统来定义布局。栅格系统将页面划分为12列,可以通过不同的类名来定义列的宽度。

<!DOCTYPE html>
<html>
<head>
    <title>栅格系统示例</title>
    <link rel="stylesheet" >
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col col-12">12 列</div>
            <div class="col col-6">6 列</div>
            <div class="col col-6">6 列</div>
            <div class="col col-4">4 列</div>
            <div class="col col-4">4 列</div>
            <div class="col col-4">4 列</div>
        </div>
    </div>
</body>
</html>

组件

Bootstrap提供了许多预定义的组件,如导航、按钮、表格等。

<!DOCTYPE html>
<html>
<head>
    <title>组件示例</title>
    <link rel="stylesheet" >
</head>
<body>
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="#">Navbar</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Features</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Pricing</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
                </li>
            </ul>
        </div>
    </nav>
</body>
</html>
后端基础知识
Node.js入门简介

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用于构建服务器端应用。Node.js可以运行在任何安装了JavaScript引擎的环境中,包括浏览器和服务器。

安装与初始化

首先,需要安装Node.js。可以通过官网下载安装包,也可以使用包管理工具如npm来安装:

npm install -g node

然后,可以通过node命令来运行JavaScript文件:

node app.js

基本语法

Node.js使用JavaScript编写,语法与浏览器端JavaScript基本一致。可以通过console.log来输出信息。

console.log('Hello, Node.js!');

文件系统操作

Node.js提供了丰富的内置模块,用于操作文件系统。以下是一个示例,展示了如何读取文件内容。

const fs = require('fs');

fs.readFile('/path/to/file', (err, data) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log(data.toString());
});

网络编程

Node.js可以用于构建网络服务器,通过http模块可以快速搭建HTTP服务器。

const http = require('http');

const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello, World!');
});

server.listen(8000, () => {
    console.log('Server is running on port 8000');
});
Express.js快速搭建服务器

Express.js是一个基于Node.js的Web应用框架,用于快速搭建Web应用。Express.js可以简化路由定义、中间件使用和模板渲染等操作。

安装与初始化

首先,需要安装Express.js。可以通过npm来安装:

npm install express

然后,可以通过require来引入Express.js。

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello, Express.js!');
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

路由定义

Express.js使用路由来定义URL和对应的处理函数。通过app.getapp.post等方法可以定义GET和POST请求的路由。

app.get('/users', (req, res) => {
    res.send('GET 请求 /users');
});

app.post('/users', (req, res) => {
    res.send('POST 请求 /users');
});

中间件使用

Express.js使用中间件来处理请求和响应。中间件可以改变请求和响应对象,也可以终止请求响应链。

app.use((req, res, next) => {
    console.log('请求被中间件处理了');
    next();
});

模板渲染

Express.js可以使用模板引擎来渲染HTML模板。常用的模板引擎包括EJS、Pug和Handlebars等。

app.set('views', './views');
app.set('view engine', 'ejs');

app.get('/', (req, res) => {
    res.render('index', { message: 'Hello, EJS!' });
});
数据库基础
MySQL数据库基础

MySQL是一个流行的开源关系数据库管理系统。MySQL支持多种数据类型,包括整型、浮点型、字符串型等。

安装与初始化

可以通过官网下载安装包,也可以使用包管理工具如apt或yum来安装:

sudo apt-get install mysql-server

安装完成后,可以通过mysql命令来进入MySQL命令行界面:

mysql -u root -p

基本语法

MySQL的基本语法包括创建数据库、创建表、插入数据、查询数据等。

-- 创建数据库
CREATE DATABASE mydatabase;

-- 使用数据库
USE mydatabase;

-- 创建表
CREATE TABLE users (
    id INT,
    name VARCHAR(50),
    email VARCHAR(100)
);

-- 插入数据
INSERT INTO users (id, name, email) VALUES (1, '张三', 'zhangsan@example.com');

-- 查询数据
SELECT * FROM users;

SQL语句

SQL(Structured Query Language)是一种用于管理关系数据库的标准语言。常用的SQL语句包括CREATEINSERTSELECTUPDATEDELETE等。

-- 创建表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(100)
);

-- 插入数据
INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');

-- 查询数据
SELECT * FROM users;

-- 更新数据
UPDATE users SET email = 'zhangsan_new@example.com' WHERE id = 1;

-- 删除数据
DELETE FROM users WHERE id = 1;
MongoDB入门教程

MongoDB是一个流行的NoSQL数据库管理系统,用于存储半结构化或非结构化的数据。MongoDB支持JSON格式的数据存储,可以通过查询语言来操作数据。

安装与初始化

可以通过官网下载安装包,也可以使用包管理工具如apt或yum来安装:

sudo apt-get install mongodb

安装完成后,可以通过mongo命令来进入MongoDB命令行界面:

mongo

基本语法

MongoDB的基本语法包括创建集合、插入文档、查询文档等。

// 创建集合
db.createCollection("users");

// 插入文档
db.users.insert({
    name: "张三",
    email: "zhangsan@example.com"
});

// 查询文档
db.users.find();

数据模型

MongoDB使用文档作为基本的数据模型,文档是键值对的集合。文档支持嵌套结构,可以表示复杂的数据关系。

// 插入文档
db.users.insert({
    name: "张三",
    email: "zhangsan@example.com",
    address: {
        street: "街道",
        city: "城市",
        zipCode: "邮编"
    }
});

查询语言

MongoDB使用查询语言来操作数据。查询语言支持条件查询、聚合查询、更新查询等。

// 条件查询
db.users.find({ name: "张三" });

// 聚合查询
db.users.aggregate([
    { $group: { _id: "$city", count: { $sum: 1 } } }
]);

// 更新查询
db.users.updateOne({ name: "张三" }, { $set: { email: "zhangsan_new@example.com" } });
部署与上线
静态网站部署到GitHub Pages

GitHub Pages是一个免费的静态网站托管服务,可以将静态网站部署到GitHub上。以下是部署静态网站到GitHub Pages的步骤:

创建仓库

首先,需要在GitHub上创建一个新的仓库。仓库名需要符合<username>.github.io的形式,例如zhangsan.github.io

提交代码

将静态网站的代码提交到仓库中。可以通过Git或GitHub的Web界面来提交代码。

git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/zhangsan/zhangsan.github.io.git
git push -u origin master

配置GitHub Pages

在仓库的设置中,选择GitHub Pages选项卡,选择master分支作为源分支,然后点击Save按钮。

访问网站

部署完成后,可以通过https://zhangsan.github.io访问网站。

使用Docker部署应用

Docker是一个开源的容器化平台,可以将应用及其依赖打包成独立的容器。以下是使用Docker部署应用的步骤:

安装Docker

首先,需要安装Docker。可以通过官网下载安装包,也可以使用包管理工具如apt或yum来安装:

sudo apt-get install docker.io

编写Dockerfile

Dockerfile是一个包含构建指令的文本文件,用于定义如何构建Docker镜像。以下是一个简单的Dockerfile示例:

# 使用官方Node.js镜像作为基础镜像
FROM node:14

# 设置工作目录
WORKDIR /app

# 复制package.json和package-lock.json文件
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制应用代码
COPY . .

# 暴露端口
EXPOSE 3000

# 启动应用
CMD ["node", "server.js"]

构建镜像

通过docker build命令来构建Docker镜像。镜像名可以自定义。

docker build -t myapp .

运行容器

通过docker run命令来运行Docker容器。

docker run -p 3000:3000 -d myapp
实战项目
创建个人博客网站

创建一个简单的个人博客网站,使用HTML、CSS和JavaScript来构建静态页面,使用Node.js和Express.js来搭建后端服务器。

静态页面

首先,创建一个包含博客文章的静态页面。

<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <header>
        <h1>我的博客</h1>
    </header>
    <main>
        <article>
            <h2>文章1</h2>
            <p>这是文章1的内容。</p>
        </article>
        <article>
            <h2>文章2</h2>
            <p>这是文章2的内容。</p>
        </article>
    </main>
</body>
</html>
/* style.css */
body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
}
header {
    background-color: #f8f9fa;
    padding: 20px;
}
main {
    padding: 20px;
}
article {
    margin-bottom: 20px;
}

后端服务器

然后,使用Node.js和Express.js来搭建后端服务器。

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send(`
        <html>
            <head>
                <title>我的博客</title>
                <link rel="stylesheet" href="style.css">
            </head>
            <body>
                <header>
                    <h1>我的博客</h1>
                </header>
                <main>
                    <article>
                        <h2>文章1</h2>
                        <p>这是文章1的内容。</p>
                    </article>
                    <article>
                        <h2>文章2</h2>
                        <p>这是文章2的内容。</p>
                    </article>
                </main>
            </body>
        </html>
    `);
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

运行服务器

最后,运行后端服务器。

node app.js
构建简单的在线商城

创建一个简单的在线商城,使用HTML、CSS和JavaScript来构建前端页面,使用Node.js和Express.js来搭建后端服务器。

静态页面

首先,创建一个包含商品列表的静态页面。

<!DOCTYPE html>
<html>
<head>
    <title>在线商城</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <header>
        <h1>在线商城</h1>
    </header>
    <main>
        <ul>
            <li>
                <img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="product1.jpg" alt="商品1">
                <h2>商品1</h2>
                <p>价格:¥100</p>
                <button>购买</button>
            </li>
            <li>
                <img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="product2.jpg" alt="商品2">
                <h2>商品2</h2>
                <p>价格:¥200</p>
                <button>购买</button>
            </li>
        </ul>
    </main>
</body>
</html>
/* style.css */
body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
}
header {
    background-color: #f8f9fa;
    padding: 20px;
}
main {
    padding: 20px;
}
ul {
    list-style: none;
    padding: 0;
}
li {
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    padding: 10px;
}
img {
    width: 100px;
    height: 100px;
    margin-right: 20px;
}
button {
    background-color: #007bff;
    color: #fff;
    border: none;
    padding: 5px 10px;
    cursor: pointer;
}

后端服务器

然后,使用Node.js和Express.js来搭建后端服务器。

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send(`
        <html>
            <head>
                <title>在线商城</title>
                <link rel="stylesheet" href="style.css">
            </head>
            <body>
                <header>
                    <h1>在线商城</h1>
                </header>
                <main>
                    <ul>
                        <li>
                            <img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="product1.jpg" alt="商品1">
                            <h2>商品1</h2>
                            <p>价格:¥100</p>
                            <button>购买</button>
                        </li>
                        <li>
                            <img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="product2.jpg" alt="商品2">
                            <h2>商品2</h2>
                            <p>价格:¥200</p>
                            <button>购买</button>
                        </li>
                    </ul>
                </main>
            </body>
        </html>
    `);
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

运行服务器

最后,运行后端服务器。

node app.js

这样就完成了一个简单的在线商城的构建。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消