Node.js 服务器IP设置指南
我将创建一个直观的界面,展示如何在Node.js中设置服务器IP地址,并提供可交互的示例。
设计思路
- 左侧展示代码示例和说明
- 右侧提供可运行的模拟演示
- 使用现代UI设计,清晰区分不同部分
- 添加实际操作的模拟效果
下面是完整的实现代码:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Node.js 服务器IP设置指南</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background: linear-gradient(135deg, #1a2a6c, #b21f1f, #fdbb2d); color: #333; line-height: 1.6; min-height: 100vh; padding: 20px; } .container { max-width: 1200px; margin: 0 auto; } header { text-align: center; margin-bottom: 30px; padding: 20px; background: rgba(255, 255, 255, 0.9); border-radius: 10px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); } h1 { color: #2c3e50; margin-bottom: 10px; } .subtitle { color: #7f8c8d; font-size: 1.2rem; } .content { display: flex; gap: 20px; flex-wrap: wrap; } .card { flex: 1; min-width: 300px; background: rgba(255, 255, 255, 0.95); border-radius: 10px; padding: 25px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); } .card-title { color: #2c3e50; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 2px solid #3498db; } .code-block { background: #2d3436; color: #f5f6fa; padding: 15px; border-radius: 5px; margin: 15px 0; overflow-x: auto; font-family: 'Fira Code', monospace; } .code-comment { color: #7f8c8d; } .code-keyword { color: #e74c3c; } .code-string { color: #2ecc71; } .code-number { color: #9b59b6; } .demo-container { display: flex; flex-direction: column; gap: 15px; } .input-group { display: flex; flex-direction: column; gap: 5px; } label { font-weight: 600; color: #2c3e50; } input, select { padding: 10px; border: 1px solid #ddd; border-radius: 5px; font-size: 16px; } button { padding: 12px 20px; background: #3498db; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; font-weight: 600; transition: background 0.3s; } button:hover { background: #2980b9; } .output { background: #2d3436; color: #f5f6fa; padding: 15px; border-radius: 5px; min-height: 100px; font-family: 'Fira Code', monospace; margin-top: 15px; white-space: pre-line; } .info-box { background: #d4edff; padding: 15px; border-left: 4px solid #3498db; margin: 15px 0; border-radius: 0 5px 5px 0; } .steps { margin: 15px 0; } .step { display: flex; align-items: flex-start; margin-bottom: 15px; } .step-number { background: #3498db; color: white; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-right: 10px; flex-shrink: 0; } .step-content { flex: 1; } .note { background: #fff3cd; padding: 15px; border-left: 4px solid #ffc107; margin: 15px 0; border-radius: 0 5px 5px 0; } @media (max-width: 768px) { .content { flex-direction: column; } } </style> </head> <body> <div class="container"> <header> <h1>Node.js 服务器IP设置指南</h1> <p class="subtitle">学习如何设置Node.js服务器的IP地址和端口</p> </header> <div class="content"> <div class="card"> <h2 class="card-title">代码示例</h2> <div class="info-box"> <p>在Node.js中,您可以通过指定IP地址来控制服务器监听的位置。</p> </div> <h3>使用HTTP模块</h3> <div class="code-block"> <span class="code-keyword">const</span> http = <span class="code-keyword">require</span>(<span class="code-string">'http'</span>);<br> <br> <span class="code-comment">// 创建HTTP服务器</span><br> <span class="code-keyword">const</span> server = http.createServer((req, res) => {<br> res.end(<span class="code-string">'Hello World!'</span>);<br> });<br> <br> <span class="code-comment">// 设置服务器IP和端口</span><br> <span class="code-keyword">const</span> PORT = <span class="code-number">3000</span>;<br> <span class="code-keyword">const</span> HOST = <span class="code-string">'0.0.0.0'</span>; <span class="code-comment">// 监听所有网络接口</span><br> <span class="code-comment">// const HOST = '127.0.0.1'; // 只监听本地回环</span><br> <span class="code-comment">// const HOST = '192.168.1.100'; // 监听特定IP</span><br> <br> <span class="code-comment">// 启动服务器</span><br> server.listen(PORT, HOST, () => {<br> console.log(<span class="code-string">服务器运行在 http://<span class="code-keyword">${</span>HOST<span class="code-keyword">}</span>:<span class="code-keyword">${</span>PORT<span class="code-keyword">}</span>
</span>);<br> }); </div> <h3>使用Express框架</h3> <div class="code-block"> <span class="code-keyword">const</span> express = <span class="code-keyword">require</span>(<span class="code-string">'express'</span>);<br> <span class="code-keyword">const</span> app = express();<br> <br> app.get(<span class="code-string">'/'</span>, (req, res) => {<br> res.send(<span class="code-string">'Hello World!'</span>);<br> });<br> <br> <span class="code-keyword">const</span> PORT = <span class="code-number">3000</span>;<br> <span class="code-keyword">const</span> HOST = <span class="code-string">'0.0.0.0'</span>;<br> <br> app.listen(PORT, HOST, () => {<br> console.log(<span class="code-string">Express服务器运行在 http://<span class="code-keyword">${</span>HOST<span class="code-keyword">}</span>:<span class="code-keyword">${</span>PORT<span class="code-keyword">}</span>
</span>);<br> }); </div> <div class="note"> <p><strong>注意:</strong>使用 '0.0.0.0' 将使服务器监听所有可用网络接口,包括局域网和公网IP。</p> </div> </div> <div class="card"> <h2 class="card-title">IP地址设置演示</h2> <div class="demo-container"> <div class="input-group"> <label for="ipAddress">选择IP地址:</label> <select id="ipAddress"> <option value="127.0.0.1">127.0.0.1 (本地回环)</option> <option value="0.0.0.0" selected>0.0.0.0 (所有网络接口)</option> <option value="192.168.1.100">192.168.1.100 (示例局域网IP)</option> </select> </div> <div class="input-group"> <label for="port">端口号:</label> <input type="number" id="port" value="3000" min="1024" max="65535"> </div> <button id="startServer">启动服务器</button> <div class="output" id="serverOutput"> // 服务器输出将显示在这里 </div> </div> <h3>设置步骤</h3> <div class="steps"> <div class="step"> <div class="step-number">1</div> <div class="step-content"> <strong>选择要监听的IP地址</strong> <p>根据您的需求选择合适的IP地址:本地回环、所有接口或特定IP。</p> </div> </div> <div class="step"> <div class="step-number">2</div> <div class="step-content"> <strong>选择端口号</strong> <p>通常使用3000、8080等端口,确保端口未被其他程序占用。</p> </div> </div> <div class="step"> <div class="step-number">3</div> <div class="step-content"> <strong>启动服务器</strong> <p>调用server.listen()或app.listen()方法启动服务器。</p> </div> </div> </div> <div class="info-box"> <p><strong>提示:</strong>在生产环境中,建议使用环境变量来设置IP和端口,</p> <div class="code-block"> <span class="code-keyword">const</span> PORT = process.env.PORT || <span class="code-number">3000</span>;<br> <span class="code-keyword">const</span> HOST = process.env.HOST || <span class="code-string">'0.0.0.0'</span>; </div> </div> </div> </div> </div> <script> document.getElementById('startServer').addEventListener('click', function() { const ipAddress = document.getElementById('ipAddress').value; const port = document.getElementById('port').value; if (!port) { alert('请输入有效的端口号'); return; } const output = document.getElementById('serverOutput'); // 模拟服务器启动输出 output.textContent => node server.js\n
; // 模拟服务器启动过程 setTimeout(() => { output.textContent +=正在启动服务器...\n
; }, 500); setTimeout(() => { output.textContent +=服务器运行在 http://${ipAddress}:${port}\n
; output.textContent +=按 Ctrl+C 停止服务器
; }, 1500); }); </script> </body> </html>
功能说明
这个页面提供了以下功能:
1、代码示例:展示了使用原生HTTP模块和Express框架设置服务器IP的代码
2、交互演示:用户可以选择不同的IP地址和端口,点击"启动服务器"按钮查看模拟效果
3、步骤说明:详细解释了设置服务器IP的步骤
4、注意事项:提供了关于IP地址设置的重要提示
页面采用了响应式设计,可以在各种设备上正常显示,并使用颜色高亮使代码更易读。
您可以直接将这段代码保存为HTML文件并在浏览器中打开,即可查看完整效果。
文章摘自:https://idc.huochengrm.cn/fwq/15323.html
评论