ZBLOG

用node写一个新闻管理系统

下面是一个使用Node.js搭建的简单新闻管理系统的示例:

  1. 安装依赖: 首先,确保你已经安装了Node.js和npm。然后,在命令行中进入项目目录,并运行以下命令来初始化项目并安装所需的依赖项:

    npm init -y
    npm install express mongoose
    
  2. 创建文件结构: 在项目目录下创建以下文件和文件夹结构:

    • app.js:主应用程序入口文件
    • models/News.js:新闻模型定义
    • routes/news.js:处理新闻相关路由
  3. 编写代码:

app.js:

const express = require('express');
const mongoose = require('mongoose');
const newsRoutes = require('./routes/news');

// 连接数据库
mongoose.connect('mongodb://localhost/newsdb', { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => {
    console.log('Connected to MongoDB');
  })
  .catch((error) => {
    console.error(error);
  });

// 创建Express应用程序实例
const app = express();

// 解析请求体中的JSON数据
app.use(express.json());

// 注册新闻相关路由中间件
app.use('/api/news', newsRoutes);

// 启动服务器
app.listen(3000, () => {
  console.log('Server started on port 3000');
});

models/News.js:

const mongoose = require('mongoose');

// 定义新闻模型的Schema
const newsSchema = new mongoose.Schema({
  title: String,
  content: String,
  author: String,
  createdAt: {
    type: Date,
    default: Date.now
  }
});

// 创建新闻模型并导出
module.exports = mongoose.model('News', newsSchema);

routes/news.js:

const express = require('express');
const News = require('../models/News');

const router = express.Router();

// 获取所有新闻
router.get('/', async (req, res) => {
  try {
    const news = await News.find();
    res.json(news);
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: 'Server Error' });
  }
});

// 创建新闻
router.post('/', async (req, res) => {
  try {
    const { title, content, author } = req.body;
    const news = new News({ title, content, author });
    await news.save();
    res.status(201).json(news);
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: 'Server Error' });
  }
});

module.exports = router;
  1. 启动应用程序: 在命令行中运行以下命令来启动服务器:
    
    node app.js
    

现在你可以使用Postman或其他工具发送HTTP请求来测试新闻管理系统的API。例如,发送POST请求到http://localhost:3000/api/news来创建一条新闻,并发送GET请求到http://localhost:3000/api/news来获取所有新闻。

请注意,这只是一个简单的示例,实际的新闻管理系统可能涉及更多功能和复杂性。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=8178

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?