【node学习】使用node简单搭建一个网页和todo

如何使用 Node.js 和 Express 搭建动态网页

搭建一个简单的动态网页是学习 Node.js 和 Express 的一个很好的实践。本文将分步骤指导你如何从零开始搭建一个动态网页应用。

步骤 1:安装 Node.js 和 npm

首先,确保你已经安装了 Node.js 和 npm(Node 包管理器)。可以从 Node.js 官方网站 下载并安装最新版本。

步骤 2:初始化项目

在终端或命令行中,创建一个新的项目目录并初始化 npm:

mkdir dynamic-webpage
cd dynamic-webpage
npm init -y

这会在项目目录中创建一个 package.json 文件,包含项目的基本配置信息。

步骤 3:安装 Express 框架

Express 是一个简洁且灵活的 Node.js web 应用框架。安装 Express 及其依赖包:

npm install express
步骤 4:创建服务器文件

在项目目录中创建一个名为 server.js 的文件,并编写以下内容:

const express = require('express');
const path = require('path');
const app = express();
const port = 3000;

// 设置视图引擎
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));

// 设置静态文件目录
app.use(express.static(path.join(__dirname, 'public')));

// 路由
app.get('/', (req, res) => {
  res.render('index', { title: '动态网页示例', message: '欢迎使用 Node.js 和 Express 搭建的动态网页!' });
});

// 启动服务器
app.listen(port, () => {
  console.log(`服务器正在运行在 http://localhost:${port}`);
});

这段代码创建了一个基本的 Express 服务器,设置了视图引擎为 EJS,并定义了一个简单的路由。

步骤 5:创建视图模板

在项目目录中创建一个名为 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><%= title %></title>
</head>
<body>
  <h1><%= message %></h1>
</body>
</html>

这个模板文件使用 EJS 语法,可以将服务器传递的数据动态地插入到 HTML 中。

步骤 6:创建静态文件

在项目目录中创建一个名为 public 的文件夹,可以在其中存放静态文件,如 CSS、JavaScript、图片等。

步骤 7:运行服务器

在终端中运行以下命令启动服务器:

node server.js

如果一切顺利,你应该会看到以下输出:

服务器正在运行在 http://localhost:3000
步骤 8:访问动态网页

打开浏览器,访问 http://localhost:3000,你应该会看到一个包含动态内容的网页,显示标题和欢迎信息。

如何使用 Node.js 和 Express 搭建一个动态的 Todo 应用

搭建一个 Todo 应用是学习 Node.js 和 Express 的一个很好的实践项目。本文将逐步指导你如何从零开始搭建一个动态的 Todo 应用。

步骤 1:安装 Node.js 和 npm

首先,确保你已经安装了 Node.js 和 npm(Node 包管理器)。可以从 Node.js 官方网站 下载并安装最新版本。

步骤 2:初始化项目

在终端或命令行中,创建一个新的项目目录并初始化 npm:

mkdir todo-app
cd todo-app
npm init -y

这会在项目目录中创建一个 package.json 文件,包含项目的基本配置信息。

步骤 3:安装 Express 框架

Express 是一个简洁且灵活的 Node.js web 应用框架。安装 Express 及其依赖包:

npm install express
步骤 4:安装其他必要的包

安装 EJS 视图引擎和 Body Parser 中间件,用于处理 POST 请求的数据:

npm install ejs body-parser
步骤 5:创建服务器文件

在项目目录中创建一个名为 server.js 的文件,并编写以下内容:

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;

app.use(bodyParser.urlencoded({ extended: true }));

// 设置视图引擎
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));

// 设置静态文件目录
app.use(express.static(path.join(__dirname, 'public')));

let todoList = [];

// 路由
app.get('/', (req, res) => {
  res.render('index', { title: 'Todo 应用', todos: todoList });
});

app.post('/add', (req, res) => {
  const newTodo = req.body.todo;
  if (newTodo) {
    todoList.push(newTodo);
  }
  res.redirect('/');
});

// 启动服务器
app.listen(port, () => {
  console.log(`服务器正在运行在 http://localhost:${port}`);
});

这段代码创建了一个基本的 Express 服务器,设置了视图引擎为 EJS,并定义了两个路由:一个用于显示 Todo 列表,另一个用于添加新的 Todo 项。

步骤 6:创建视图模板

在项目目录中创建一个名为 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><%= title %></title>
  <style>
    body {
      font-family: Arial, sans-serif;
    }
    .container {
      max-width: 600px;
      margin: 50px auto;
      text-align: center;
    }
    ul {
      list-style-type: none;
      padding: 0;
    }
    li {
      background: #f4f4f4;
      margin: 10px 0;
      padding: 10px;
      border-radius: 5px;
    }
    form input {
      padding: 10px;
      font-size: 16px;
    }
  </style>
</head>
<body>
  <div class="container">
    <h1><%= title %></h1>
    <form action="/add" method="POST">
      <input type="text" name="todo" placeholder="输入新的待办事项" required>
      <button type="submit">添加</button>
    </form>
    <ul>
      <% todos.forEach(function(todo) { %>
        <li><%= todo %></li>
      <% }); %>
    </ul>
  </div>
</body>
</html>

这个模板文件使用 EJS 语法,可以将服务器传递的数据动态地插入到 HTML 中,显示 Todo 列表并提供一个表单来添加新的 Todo 项。

步骤 7:创建静态文件

在项目目录中创建一个名为 public 的文件夹,可以在其中存放静态文件,如 CSS、JavaScript、图片等。对于这个简单的应用,可以将 CSS 样式直接写在 index.ejs 文件中。

步骤 8:运行服务器

在终端中运行以下命令启动服务器:

node server.js

如果一切顺利,你应该会看到以下输出:

服务器正在运行在 http://localhost:3000
步骤 9:访问 Todo 应用

打开浏览器,访问 http://localhost:3000,你应该会看到一个包含动态内容的 Todo 应用,显示当前的 Todo 列表并提供一个表单来添加新的 Todo 项。

综上,我们就可以了解了基本构造,和开发一个todo小例子

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个使用Node.js编写的简单RESTful API示例。本示例使用Express框架来处理HTTP请求和路由,并使用MongoDB数据库来存储数据。 首先,需要创建一个新的Node.js项目并安装依赖: ``` mkdir my-api cd my-api npm init npm install express mongoose body-parser --save ``` 然后,创建一个名为`index.js`的文件并添加以下代码: ```javascript const express = require('express'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); const app = express(); const port = 3000; // 连接到MongoDB数据库 mongoose.connect('mongodb://localhost/my-api', { useNewUrlParser: true }); // 创建一个模型(Model) const Todo = mongoose.model('Todo', { text: String }); // 使用body-parser中间件解析请求体 app.use(bodyParser.json()); // 处理GET请求,返回所有Todo列表 app.get('/todos', async (req, res) => { const todos = await Todo.find(); res.json(todos); }); // 处理POST请求,创建新的Todo项 app.post('/todos', async (req, res) => { const todo = new Todo({ text: req.body.text }); await todo.save(); res.json(todo); }); // 启动服务 app.listen(port, () => { console.log(`Server listening on port ${port}`); }); ``` 以上代码创建了一个Express应用程序,定义了两个路由:`/todos`,用于获取所有Todo项的列表和创建新的Todo项。 最后,打开终端并在项目的根目录下运行以下命令: ``` node index.js ``` 现在可以使用Postman或任何其他HTTP客户端来测试API。例如,使用POST请求将一个新的Todo项添加到列表中: ``` POST http://localhost:3000/todos Content-Type: application/json { "text": "Buy milk" } ``` API应该会返回一个JSON响应,显示新创建的Todo项: ```json { "_id": "5e9f67ab7b9c6940e84e6f8d", "text": "Buy milk", "__v": 0 } ``` 使用GET请求获取所有Todo项的列表: ``` GET http://localhost:3000/todos ``` 应该会返回一个JSON响应,显示所有Todo项的列表: ```json [ { "_id": "5e9f67ab7b9c6940e84e6f8d", "text": "Buy milk", "__v": 0 } ] ``` 以上是一个简单的RESTful API示例,可以根据需要添加更多的路由和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elik-hb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值