comment.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. var express = require('express');
  2. var createError = require('http-errors')
  3. var router = express.Router();
  4. const models = require('../../models');
  5. // API路由
  6. // 获取已批准的评论
  7. router.get('/', function (req, res, next) {
  8. (async function () {
  9. let query = { approved: true };
  10. let page = req.query.page;
  11. if (page) query.page = page;
  12. const comments = await models.Comment.find(query).sort({ createdAt: -1 });
  13. res.json(comments);
  14. })().catch(next);
  15. });
  16. // 提交评论
  17. router.post('/', async (req, res) => {
  18. try {
  19. // 验证输入
  20. const { page, name, email, comment } = req.body;
  21. if (!page || !name || !email || !comment) throw createError(404, 'Name, email, and comment are required');
  22. // 创建新评论(默认未批准)
  23. const newComment = new models.Comment({
  24. page,
  25. name,
  26. email,
  27. comment
  28. });
  29. // 保存评论
  30. await newComment.save();
  31. res.status(201).json({ message: 'Comment submitted successfully. It will appear after moderation.' });
  32. } catch (error) {
  33. console.error('Error submitting comment:', error);
  34. res.status(500).json({ message: 'Internal server error' });
  35. }
  36. });
  37. module.exports = router;