Node.js 使用axios时插座挂起

Node.js 使用axios时插座挂起,node.js,mongoose,axios,Node.js,Mongoose,Axios,我遇到了一个错误“error:socket挂起”,我不知道是什么原因造成的,但它将数据保存在数据库中 这是我的密码: dataschema.js const mongoose = require("mongoose"); const DataSchema = new mongoose.Schema({ data1: { type: String }, data2: { type: String }, data3: { type:

我遇到了一个错误“error:socket挂起”,我不知道是什么原因造成的,但它将数据保存在数据库中

这是我的密码:

dataschema.js

const mongoose = require("mongoose");

const DataSchema = new mongoose.Schema({
  data1: {
    type: String
  },
  data2: {
    type: String
  },
  data3: {
    type: String
  },
  data4: {
    type: String
  },
});

const DataModel = mongoose.model("TEST123", DataSchema);

module.exports = DataModel;
routes.js

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const DataModel = require('./models/dataschema');

var bodyParser = require('body-parser');
app.use(bodyParser.json());

mongoose.connect(
    "mongodb://localhost:27017/stocksmonitor?readPreference=primary&appname=MongoDB%20Compass%20Community&ssl=false",
    { useNewUrlParser: true }
);

app.post('/insert', (req, res) => {

    const stock = new DataModel({
        data1: req.body[0],
        data2: req.body[1],
        data3: req.body[2],
        data4: req.body[3],
    })
    
    stock.save();
    
})

app.listen(3001, () => {
    console.log("You are connected");
})
savedata.js

const axios = require('axios');

SaveInfo = () => {

  const testdata = ["a", "b", "c", "d"]

  axios({
      method: 'post',
      url: 'http://localhost:3001/insert',
      data: testdata
  })
  .then(function (response) {
      console.log(response);
  })
  .catch(function (error) {
      console.log(error);
  });
}
SaveInfo(); 

我检查了代码,发现您没有返回控制器的响应。在保存后的代码中添加
res.send()
res.json()
。因此express可以返回正确的响应。否则请求将超时,因为它未解析,Express将切断连接。因此axios抛出了
错误:套接字意外挂起

app.post('/insert', (req, res) => {

    const stock = new DataModel({
        data1: req.body[0],
        data2: req.body[1],
        data3: req.body[2],
        data4: req.body[3],
    })
    
    stock.save();
})