2024-08-24



const express = require('express');
const axios = require('axios');
const app = express();
const PORT = 3000;
 
app.get('/', async (req, res) => {
  const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
  try {
    const response = await axios.get(`http://ip-api.com/json/${ip}`);
    if (response.data.status === 'success') {
      const city = response.data.city;
      res.send(`您的IP地址对应的城市是:${city}`);
    } else {
      res.send('无法获取您的城市信息。');
    }
  } catch (error) {
    res.send('服务器错误,无法获取您的城市信息。');
  }
});
 
app.listen(PORT, () => {
  console.log(`服务器运行在 http://localhost:${PORT}`);
});

这段代码使用Express框架创建了一个简单的Web服务器,并且使用axios库来发送HTTP GET请求到http://ip-api.com/以获取客户端IP地址对应的城市信息。服务器监听在端口3000上,当访问根URL时,它会获取IP地址,然后尝试解析城市信息并将其返回给客户端。

2024-08-24



// 导入Node.js内置的http模块
const http = require('http');
 
// 创建HTTP服务器并定义响应行为
const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!\n');
});
 
// 设置服务器监听端口
const PORT = 3000;
server.listen(PORT, () => {
  console.log(`服务器运行在 http://localhost:${PORT}/`);
});

这段代码使用了Node.js的http模块创建了一个简单的HTTP服务器,监听3000端口,并对所有请求返回“Hello, World!”。这是学习Node.js时的一个基本示例,展示了如何创建一个基本的web服务器。

2024-08-24

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它提供了一种简单的方法来构建快速的、可扩展的网络应用。以下是一些 Node.js 的常见知识点和使用示例:

  1. HTTP服务器创建



const http = require('http');
 
const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
});
 
const port = 3000;
server.listen(port, () => {
  console.log(`Server running at http://localhost:${port}/`);
});
  1. 事件驱动编程



const EventEmitter = require('events');
 
class MyEmitter extends EventEmitter {}
 
const myEmitter = new MyEmitter();
 
myEmitter.on('event', () => {
  console.log('事件触发');
});
 
myEmitter.emit('event');
  1. 使用 npm 管理包依赖



// 安装 express 包
npm install express
 
// 在代码中引入 express
const express = require('express');
const app = express();
 
app.get('/', (req, res) => {
  res.send('Hello World!');
});
 
app.listen(3000, () => {
  console.log('服务器运行在 http://localhost:3000/');
});
  1. 异步编程(使用 Promises/async/await)



const fs = require('fs');
 
const readFileAsync = filename => {
  return new Promise((resolve, reject) => {
    fs.readFile(filename, 'utf8', (err, data) => {
      if (err) reject(err);
      resolve(data);
    });
  });
};
 
(async () => {
  try {
    const data = await readFileAsync('example.txt');
    console.log(data);
  } catch (err) {
    console.error(err);
  }
})();
  1. 使用 Node.js 操作数据库



const mysql = require('mysql');
 
const connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
  database : 'my_db'
});
 
connection.connect();
 
connection.query('SELECT * FROM customers', (err, results, fields) => {
  if (err) throw err;
  console.log(results);
});
 
connection.end();

这些代码示例展示了 Node.js 的基础知识点,涵盖了 HTTP 服务器创建、事件驱动编程、npm 包管理、异步编程和数据库操作等常用场景。

2024-08-24

node-cache 是一个轻量级的进程内缓存库,适用于 Node.js 应用程序。它提供了缓存数据的功能,并可以设置缓存的过期时间。

以下是如何使用 node-cache 的基本示例:

首先,通过 npm 安装 node-cache




npm install node-cache

然后,在你的代码中引入并使用 node-cache




const NodeCache = require("node-cache");
 
// 创建一个缓存实例
const myCache = new NodeCache({
  stdTTL: 300, // 默认缓存有效期5分钟
  checkperiod: 120 // 每2分钟检查一次缓存是否到期
});
 
// 设置缓存
myCache.set("key1", "value1");
 
// 获取缓存
const value1 = myCache.get("key1");
console.log(value1); // 输出: value1
 
// 检查键是否存在
const hasKey = myCache.has("key1");
console.log(hasKey); // 输出: true
 
// 删除缓存
myCache.del("key1");

node-cache 提供了简单的 API 来设置、获取和删除缓存数据,并且可以设置每个键的默认存活时间(TTL)。它非常适合小型应用和快速开发迭代。

2024-08-24

在Node.js中连接MySQL数据库,你可以使用mysql模块。以下是步骤和示例代码:

  1. 安装mysql模块:



npm install mysql
  1. 使用mysql模块创建连接并查询数据库:



// 引入mysql模块
const mysql = require('mysql');
 
// 创建连接对象
const connection = mysql.createConnection({
  host: 'localhost', // 数据库地址
  user: 'your_username', // 数据库用户名
  password: 'your_password', // 数据库密码
  database: 'your_database' // 数据库名
});
 
// 开启连接
connection.connect();
 
// 执行查询
connection.query('SELECT * FROM your_table', (error, results, fields) => {
  if (error) throw error;
  // 处理查询结果
  console.log(results);
});
 
// 关闭连接
connection.end();

确保替换your_usernameyour_passwordyour_databaseyour_table为你的MySQL数据库的实际用户名、密码、数据库名和表名。

Navicat是一个数据库管理工具,它不用于在Node.js中连接到MySQL数据库。Node.js通过代码直接与MySQL数据库通信。如果你需要一个图形界面来管理MySQL数据库,Navicat是一个很好的选择,但在编写Node.js代码时,你不需要它。

2024-08-24

在命令行中切换Node.js版本,通常可以使用nvm(Node Version Manager)或n这样的工具。以下是使用nvm的示例步骤:

  1. 如果尚未安装nvm,请安装它。在终端中运行以下命令:

    
    
    
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    # 或者使用wget:
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  2. 安装新版本的Node.js:

    
    
    
    nvm install 16.0
  3. 切换到特定版本的Node.js:

    
    
    
    nvm use 16.0
  4. 如果想要设置默认的Node.js版本:

    
    
    
    nvm alias default 16.0
  5. 检查当前使用的Node.js版本:

    
    
    
    node -v

使用n的示例步骤:

  1. 如果尚未安装n,请使用npm安装它:

    
    
    
    npm install -g n
  2. 安装新版本的Node.js:

    
    
    
    n 16.0
  3. 使用新版本的Node.js:

    
    
    
    n
  4. 如果想要设置默认的Node.js版本:

    
    
    
    n 16.0
  5. 检查当前使用的Node.js版本:

    
    
    
    node -v

注意:nvmn是两个不同的版本管理工具,但它们都可以用来切换Node.js版本。根据你的需求和偏好选择其中之一进行安装和使用。

2024-08-24

NVM (Node Version Manager) 是一个用于管理 Node.js 版本的工具,它可以让你轻松切换不同的 Node.js 版本。以下是如何安装和使用 NVM 的步骤:

  1. 安装 NVM:

    在终端中运行以下命令来安装 NVM:

    
    
    
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    # 或者使用 wget:
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  2. 重新启动终端或者运行以下命令来让 NVM 生效:

    
    
    
    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  3. 安装 Node.js 版本:

    使用 NVM 安装 Node.js 的特定版本:

    
    
    
    nvm install 14.17.0
  4. 切换 Node.js 版本:

    使用 NVM 切换到已安装的 Node.js 版本:

    
    
    
    nvm use 14.17.0
  5. 查看已安装的 Node.js 版本:

    
    
    
    nvm ls
  6. 设置默认 Node.js 版本:

    
    
    
    nvm alias default 14.17.0

这样,你就可以轻松管理 Node.js 的版本了。

2024-08-24



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML+CSS+JS快速使用示例</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        .highlight {
            color: blue;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <h1>欢迎来到我的网页</h1>
    <p>这是一个普通的段落。</p>
    <p class="highlight">这是一个高亮的段落。</p>
 
    <script>
        // 使用JavaScript改变段落颜色
        const paragraphs = document.querySelectorAll('p');
        paragraphs[1].style.color = 'red';
    </script>
</body>
</html>

这段代码展示了如何在HTML文档中使用内部CSS样式和JavaScript来改变段落的样式和内容。代码简洁,注重逻辑性,适合初学者学习和模仿。

2024-08-24

以下是一个简单的例子,展示了如何在HTML页面中使用JavaScript来添加和删除留言。




<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>消失的留言</title>
<script>
function addMessage() {
    var message = document.getElementById('message').value;
    if (message) {
        var container = document.getElementById('message-container');
        var messageElement = document.createElement('p');
        messageElement.innerText = message;
        container.appendChild(messageElement);
        document.getElementById('message').value = '';
    }
}
 
function removeMessage(event) {
    var container = document.getElementById('message-container');
    container.removeChild(event.target.parentNode);
}
</script>
</head>
<body>
<h1>消失的留言</h1>
<textarea id="message" placeholder="写下你的留言..."></textarea>
<button onclick="addMessage()">添加留言</button>
<div id="message-container">
    <!-- 留言将会被添加到这里 -->
</div>
</body>
</html>

在这个例子中,我们有一个文本区域和一个按钮供用户输入留言。当用户点击按钮时,addMessage函数会被调用,留言会被添加到页面上的一个<div>容器中。每条留言旁边都有一个"X"按钮,点击它会调用removeMessage函数,从而从页面上移除该留言。

2024-08-24



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML5, CSS3 和 JavaScript 基础示例</title>
    <style>
        body { font-family: Arial, sans-serif; }
        header, nav, section, footer {
            border: 1px solid #000;
            margin-bottom: 10px;
            padding: 5px;
        }
        nav ul {
            list-style-type: none;
            margin: 0;
            padding: 0;
        }
        nav ul li { display: inline; }
        section {
            width: 500px;
            margin: 0 auto;
            padding: 10px;
        }
        time {
            color: #888;
            font-size: 0.8em;
        }
        .highlight { background-color: yellow; }
    </style>
</head>
<body>
    <header>
        <h1>我的网站</h1>
    </header>
    <nav>
        <ul>
            <li><a href="#">首页</a></li>
            <li><a href="#">关于</a></li>
            <li><a href="#">联系</a></li>
        </ul>
    </nav>
    <section>
        <h2>最新文章</h2>
        <article>
            <h3><a href="#">文章标题</a></h3>
            <p>这里是文章的摘要...</p>
            <time datetime="2023-04-01">2023年4月1日</time>
        </article>
    </section>
    <footer>
        <p>版权所有 &copy; 2023</p>
    </footer>
    <script>
        // 这里可以编写JavaScript代码来增强网页功能
    </script>
</body>
</html>

这个代码实例展示了如何使用HTML5、CSS3和JavaScript为一个简单的网站创建基础的结构和样式,同时提供了一个<script>标签用于插入JavaScript代码。这个示例旨在教学如何搭建一个基本的网站架构,并提供了一个学习HTML、CSS和JavaScript的起点。