Node.js 发送后无法设置标题

Node.js 发送后无法设置标题,node.js,express,Node.js,Express,我使用的是带有react前端的express后端,一切正常,但偶尔会出错 发送后无法设置标题 服务器停机。我搜索了一些可能发生此错误的方法,但在我的代码中找不到此类情况。我尝试在代码中尽可能简单。有人能告诉我可能出现的问题吗 Server.js文件 // call the packages we need const addItem = require('./controllers/addItem'); const addCategory = require('./controllers/add

我使用的是带有react前端的express后端,一切正常,但偶尔会出错

发送后无法设置标题

服务器停机。我搜索了一些可能发生此错误的方法,但在我的代码中找不到此类情况。我尝试在代码中尽可能简单。有人能告诉我可能出现的问题吗

Server.js文件

// call the packages we need
const addItem = require('./controllers/addItem');
const addCategory = require('./controllers/addCategory');
const addSubCategory = require('./controllers/addSubCategory');
const getSubCategory = require('./controllers/getSubCategoryByCategory');
const getCategory = require('./controllers/getAllCategory');
const getAllItems = require('./controllers/getAllItems');
const cors = require('cors');
const express = require('express');
// call express
const app = express(); // define our app using express
const bodyParser = require('body-parser');

// configure app to use bodyParser()
// this will let us get the data from a POST
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(cors());

const port = process.env.PORT || 8080; // set our port

// ROUTES FOR OUR API
// =============================================================================
const addItemRoute = express.Router(); // get an instance of the express Router
const getCategoryRoute = express.Router();
const addCategoryRoute = express.Router();
const addSubCategoryRoute = express.Router();
const getSubCategoryRoute = express.Router();
const getAllItemsRoute = express.Router();

getCategoryRoute.get('/get_category', (req, res) => {
  getCategory(res);
});

addCategoryRoute.post('/add_category', (req, res) => {
  addCategory(req.body.name, res);
});

getSubCategoryRoute.get('/get_subcategory/:catId', (req, res) => {
  getSubCategory(req.params.catId, res);
});

addSubCategoryRoute.post('/add_subcategory', (req, res) => {
  addSubCategory(req.body.name, req.body.cat_id, res);
});

// code, name, quantity, length, description and subcategory id should be passed as parameters
addItemRoute.post('/add_item', (req, res) => {
  addItem(req.body.item, res);
});

getAllItemsRoute.get('/get_items', (req, res) => {
  getAllItems(res);
});

// more routes for our API will happen here

// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api
app.use('/api', addItemRoute);
app.use('/api', getCategoryRoute);
app.use('/api', addCategoryRoute);
app.use('/api', addSubCategoryRoute);
app.use('/api', getSubCategoryRoute);
app.use('/api', getAllItemsRoute);

// START THE SERVER
// =============================================================================
app.listen(port);
console.log(`Server started on port ${port}`);
getAllCategories()函数


如果在
connection.query()
中出现错误,您将使用
res.json()
发送响应。此错误在
连接中被捕获。在('error')
上发送另一个响应。不能对同一请求发送两个响应。在这种情况下,您似乎根本不需要
connection.on()
,或者如果您需要它来捕获其他错误,那么就不要对
connection.query()
的错误发送响应。

如果在
connection.query()
中出现错误,则使用
res.json()
发送响应。此错误在
连接中被捕获。在('error')
上发送另一个响应。不能对同一请求发送两个响应。在这种情况下,您似乎根本不需要
connection.on()
,或者如果您需要捕获其他错误,则不要对
connection.query()
的错误发送响应

Object.defineProperty(exports, '__esModule', {
  value: true,
});
const pool = require('./connection');

module.exports = function (res) {
  pool.getConnection((err, connection) => {
    if (err) {
      connection.release();
      return res.json({ code: 100, status: 'Error in connection database' });
}

console.log(`connected as id ${connection.threadId}`);

connection.query('select * from category;', (err, rows) => {
  connection.release();
  if (!err) {
    return res.json(rows);
  }
});

    connection.on('error', err => res.json({ code: 100, status: 'Error in connection database' }));
  });
};