开源一个Nodejs笔记以及todolist系统
开源一个Nodejs笔记以及todolist系统
a todolist and notes web system https://github.com/xrfinbupt/TodoListAndNotes 学习node js2个月多点,欢迎提出建议,共同提高
当然可以!以下是一个简短的开源 Node.js 笔记及待办事项系统的说明,包括基本的功能和一些示例代码。
开源一个Node.js笔记及待办事项系统
大家好,
经过两个月的学习,我开源了一个基于 Node.js 的笔记及待办事项系统。该项目旨在帮助大家更好地管理日常任务和记录重要信息。项目托管在 GitHub 上,欢迎大家使用并提供反馈和改进建议!
项目链接
- GitHub: TodoListAndNotes
功能介绍
-
待办事项:
- 添加、编辑和删除待办事项。
- 标记任务为已完成或未完成。
-
笔记:
- 创建、编辑和删除笔记。
- 搜索笔记功能。
技术栈
- 后端: Node.js + Express
- 数据库: MongoDB (使用 Mongoose 进行数据建模)
- 前端: EJS 模板引擎
示例代码
这是一个简单的示例,展示如何创建一个待办事项:
// routes/todo.js
const express = require('express');
const router = express.Router();
const Todo = require('../models/Todo');
// 添加待办事项
router.post('/add', async (req, res) => {
const { title } = req.body;
try {
const newTodo = new Todo({ title });
await newTodo.save();
res.redirect('/');
} catch (error) {
console.error(error);
res.status(500).send('Server Error');
}
});
module.exports = router;
这是 Todo
模型的一个简化版本:
// models/Todo.js
const mongoose = require('mongoose');
const todoSchema = new mongoose.Schema({
title: { type: String, required: true },
completed: { type: Boolean, default: false }
});
module.exports = mongoose.model('Todo', todoSchema);
使用说明
- 克隆仓库到本地。
- 安装依赖:
npm install
- 配置环境变量(如数据库连接字符串)。
- 启动应用:
npm start
结语
这个项目只是一个起点,欢迎大家贡献代码、提出问题和建议。希望它能对你有所帮助!
希望这些内容和示例代码对你有帮助。如果有任何问题或需要进一步的详细信息,请随时联系我!
为何放了两个版本的jquery?
回头看一下,做的还是比较粗糙,目前将就用
开源一个Node.js笔记以及待办事项(Todo List)系统可以帮助初学者更好地理解和应用Node.js技术。以下是一个简单的示例,展示如何创建一个基本的Node.js Web应用,该应用包含笔记和待办事项功能。
技术栈
- Node.js:后端运行时环境。
- Express.js:Web应用框架。
- MongoDB:数据库,存储笔记和待办事项数据。
- EJS:模板引擎,用于生成HTML页面。
目录结构
todo-notes-app/
├── node_modules/
├── public/
│ ├── css/
│ └── js/
├── views/
│ ├── home.ejs
│ ├── todo.ejs
│ └── note.ejs
├── .gitignore
├── package.json
├── server.js
└── db.js
示例代码
server.js
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
// 连接MongoDB数据库
mongoose.connect('mongodb://localhost/todo_notes', { useNewUrlParser: true, useUnifiedTopology: true });
// 设置中间件
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.set('view engine', 'ejs');
// 引入路由
const todoRoutes = require('./routes/todos');
const noteRoutes = require('./routes/notes');
app.use('/todos', todoRoutes);
app.use('/notes', noteRoutes);
app.listen(3000, () => console.log('Server is running on port 3000'));
db.js
const mongoose = require('mongoose');
// 定义Todo模型
const TodoSchema = new mongoose.Schema({
title: String,
description: String,
completed: Boolean
});
module.exports = mongoose.model('Todo', TodoSchema);
// 定义Note模型
const NoteSchema = new mongoose.Schema({
title: String,
content: String
});
module.exports = mongoose.model('Note', NoteSchema);
routes/todos.js
const express = require('express');
const router = express.Router();
const Todo = require('../db').Todo;
router.get('/', async (req, res) => {
const todos = await Todo.find({});
res.render('todo', { todos });
});
router.post('/', async (req, res) => {
const todo = new Todo(req.body);
await todo.save();
res.redirect('/todos');
});
module.exports = router;
运行项目
- 克隆仓库到本地。
- 进入项目目录并安装依赖:
npm install
- 启动服务器:
npm start
总结
这个简单的示例展示了如何使用Node.js和Express构建一个基本的Web应用,并使用MongoDB作为数据库来存储数据。通过添加更多功能和优化,可以扩展此应用的功能。希望这能帮助大家更好地理解和使用Node.js。如果你有任何问题或建议,请随时反馈!