Browse Source

feat:修改接口路径

wangsisi 10 giờ trước cách đây
mục cha
commit
f98dca411e
4 tập tin đã thay đổi với 65 bổ sung34 xóa
  1. 32 1
      README.md
  2. 3 19
      config/config.json
  3. 5 5
      routes/contact.js
  4. 25 9
      utils/emailService.js

+ 32 - 1
README.md

@@ -1,3 +1,34 @@
 # feiniao-site-node
 
-官网node项目
+官网node项目
+
+## 邮件服务配置
+
+应用程序支持邮件通知功能,但需要正确配置才能使用。如果不配置邮件服务,应用程序仍可正常运行,只是不会发送邮件通知。
+
+### 配置方法
+
+1. **使用环境变量**(推荐):
+   ```bash
+   export EMAIL_SERVICE=qq
+   export EMAIL_USER=your-email@qq.com
+   export EMAIL_PASS=your-app-password
+   export ADMIN_EMAIL=admin@yourcompany.com
+   ```
+
+2. **直接修改代码**:
+   编辑 `utils/emailService.js` 文件中的配置
+
+### 支持的邮件服务
+
+- QQ邮箱
+- Gmail
+- 163邮箱
+- Outlook
+- 其他SMTP服务
+
+### 注意事项
+
+- 使用QQ邮箱需要开启SMTP服务并获取授权码
+- 使用Gmail需要开启两步验证并生成应用密码
+- 如果不配置邮件服务,系统会跳过邮件发送,不会影响其他功能

+ 3 - 19
config/config.json

@@ -6,13 +6,7 @@
     "host": "8.210.65.64",
     "dialect": "mysql",
     "timezone":"+08:00",
-    "logQueryParameters":true,
-    "dialectOptions": {
-      "ssl": {
-        "require": false,
-        "rejectUnauthorized": false
-      }
-    }
+    "logQueryParameters":true
   },
   "test": {
     "username": "feiniao_site_node_development",
@@ -21,12 +15,7 @@
     "host": "8.210.65.64",
     "dialect": "mysql",
     "timezone":"+08:00",
-    "dialectOptions": {
-      "ssl": {
-        "require": false,
-        "rejectUnauthorized": false
-      }
-    }
+    "logQueryParameters":true
   },
   "production": { 
     "username": "feiniao_site_node_development",
@@ -35,11 +24,6 @@
     "host": "8.210.65.64",
     "dialect": "mysql",
     "timezone":"+08:00",
-    "dialectOptions": {
-      "ssl": {
-        "require": false,
-        "rejectUnauthorized": false
-      }
-    }
+    "logQueryParameters":true
   }
 }

+ 5 - 5
routes/contact.js

@@ -31,7 +31,7 @@ const { successResponse, errorResponse } = require('../utils/responese');
  *   }
  * }
  */
-router.post('/', async (req, res) => {
+router.post('/submit', async (req, res) => {
   try {
     const { name, email, phone, company, subject, message } = req.body;
     
@@ -125,7 +125,7 @@ router.post('/', async (req, res) => {
  * @apiParam {Number} [limit=10] 每页数量
  * @apiParam {Number} [status] 处理状态筛选(0-未处理,1-已处理)
  */
-router.get('/', async (req, res) => {
+router.get('/list', async (req, res) => {
   try {
     const { page = 1, limit = 10, status } = req.query;
     const offset = (page - 1) * limit;
@@ -162,7 +162,7 @@ router.get('/', async (req, res) => {
  * @apiName GetContactDetail
  * @apiGroup Contact
  */
-router.get('/:id', async (req, res) => {
+router.get('/detail/:id', async (req, res) => {
   try {
     const { id } = req.params;
     
@@ -185,7 +185,7 @@ router.get('/:id', async (req, res) => {
  * 
  * @apiParam {Number} status 处理状态(0-未处理,1-已处理)
  */
-router.put('/:id/status', async (req, res) => {
+router.put('/update/:id/status', async (req, res) => {
   try {
     const { id } = req.params;
     const { status } = req.body;
@@ -213,7 +213,7 @@ router.put('/:id/status', async (req, res) => {
  * @apiName DeleteContact
  * @apiGroup Contact
  */
-router.delete('/:id', async (req, res) => {
+router.delete('/delete/:id', async (req, res) => {
   try {
     const { id } = req.params;
     

+ 25 - 9
utils/emailService.js

@@ -1,20 +1,24 @@
 const nodemailer = require('nodemailer');
 
-// 邮件配置 - 请根据实际情况修改
+// 邮件配置 - 使用环境变量或默认配置
 const emailConfig = {
-  // 使用QQ邮箱示例,您可以根据需要修改为其他邮箱服务
-  service: 'qq', // 或者使用 'gmail', '163', 'outlook' 等
+  service: process.env.EMAIL_SERVICE || 'qq',
   auth: {
-    user: 'your-email@qq.com', // 发送邮箱 - 请修改为实际邮箱
-    pass: 'your-app-password'   // 邮箱授权码(不是登录密码)- 请修改为实际授权码
+    user: process.env.EMAIL_USER || 'your-email@qq.com',
+    pass: process.env.EMAIL_PASS || 'your-app-password'
   }
 };
 
-// 接收邮箱配置 - 请修改为实际接收邮箱
-const receiverEmail = 'admin@yourcompany.com'; // 接收留言的邮箱
+// 接收邮箱配置
+const receiverEmail = process.env.ADMIN_EMAIL || 'admin@yourcompany.com';
 
-// 创建邮件传输器
-const transporter = nodemailer.createTransport(emailConfig);
+// 检查邮件配置是否有效
+const isEmailConfigured = emailConfig.auth.user !== 'your-email@qq.com' && 
+                         emailConfig.auth.pass !== 'your-app-password' &&
+                         receiverEmail !== 'admin@yourcompany.com';
+
+// 创建邮件传输器(仅在配置有效时)
+const transporter = isEmailConfigured ? nodemailer.createTransport(emailConfig) : null;
 
 /**
  * 发送联系我们留言通知邮件
@@ -23,6 +27,12 @@ const transporter = nodemailer.createTransport(emailConfig);
  */
 async function sendContactNotification(contactData) {
   try {
+    // 检查邮件配置是否有效
+    if (!isEmailConfigured || !transporter) {
+      console.log('邮件服务未配置,跳过发送通知邮件');
+      return false;
+    }
+
     const { name, email, phone, company, subject, message, createdAt } = contactData;
     
     const mailOptions = {
@@ -79,6 +89,12 @@ async function sendContactNotification(contactData) {
  */
 async function sendAutoReply(contactData) {
   try {
+    // 检查邮件配置是否有效
+    if (!isEmailConfigured || !transporter) {
+      console.log('邮件服务未配置,跳过发送自动回复邮件');
+      return false;
+    }
+
     const { name, email, subject } = contactData;
     
     const mailOptions = {