返回

借助Node.js和Express构建轻量级任务管理应用程序

前端

在快节奏的现代世界中,任务管理是维持井然有序生活和高效工作流程的关键。我们日常生活中充斥着无数任务,因此迫切需要一种便捷高效的方法来组织和管理这些任务。借助Node.js和Express,我们可以打造一款轻量级的任务管理应用程序,满足日常需求。

引言

Node.js作为一种流行的JavaScript运行时环境,以其非阻塞式I/O和事件驱动特性著称。与之相辅相成的Express则是一个简洁而强大的Node.js框架,专为构建快速、可扩展的Web应用程序而设计。凭借Node.js和Express的强强联合,我们可以轻松创建任务管理应用程序,助力提升个人和团队的效率。

创建项目

首先,使用以下命令创建新的Node.js项目:

npx create-express-app my-task-manager

之后,进入项目目录:

cd my-task-manager

安装依赖项

接着,我们需要安装几个关键的依赖项:

npm install express body-parser mongoose
  • express :Node.js框架
  • body-parser :用于解析HTTP请求正文的中间件
  • mongoose :MongoDB对象建模工具

连接数据库

我们使用MongoDB作为数据库。在项目根目录下创建名为config/db.js的文件,并添加以下代码:

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:27017/task-manager", {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

const db = mongoose.connection;

db.on("error", console.error.bind(console, "connection error:"));
db.once("open", () => {
  console.log("Connected to MongoDB");
});

module.exports = db;

定义任务模式

现在,让我们定义一个任务模式。在models/task.js文件中添加以下代码:

const mongoose = require("mongoose");

const taskSchema = new mongoose.Schema({
  title: String,
  description: String,
  completed: Boolean,
});

const Task = mongoose.model("Task", taskSchema);

module.exports = Task;

创建路由

接下来,在routes/tasks.js文件中定义路由:

const express = require("express");
const Task = require("../models/task");

const router = express.Router();

router.get("/", async (req, res) => {
  const tasks = await Task.find();
  res.json(tasks);
});

router.post("/", async (req, res) => {
  const task = new Task(req.body);
  await task.save();
  res.json(task);
});

router.put("/:id", async (req, res) => {
  const task = await Task.findByIdAndUpdate(req.params.id, req.body, { new: true });
  res.json(task);
});

router.delete("/:id", async (req, res) => {
  await Task.findByIdAndDelete(req.params.id);
  res.json({ message: "Task deleted" });
});

module.exports = router;

配置应用

最后,在app.js文件中进行必要的配置:

const express = require("express");
const tasksRouter = require("./routes/tasks");

const app = express();

app.use(express.json());
app.use("/api/tasks", tasksRouter);

const port = 3000;

app.listen(port, () => {
  console.log(`Server listening on port ${port}`);
});

运行应用

运行以下命令启动应用程序:

npm start

即可在浏览器中访问应用程序:

http://localhost:3000