gpt4 book ai didi

node.js - 使用 axios 时套接字挂起

转载 作者:行者123 更新时间:2023-12-05 06:09:16 29 4
gpt4 key购买 nike

我遇到错误“错误:套接字挂起”,我不知道是什么原因导致的,但它会将数据保存在数据库中。

这是我的代码:

数据模式.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;

路由.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");
})

保存数据.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();

最佳答案

我检查了代码,发现您没有为您的 Controller 返回响应。保存后在下面的代码中添加 res.send()res.json()。所以 express 可以返回一个正确的响应。否则请求会超时,因为它没有解析,Express 会切断连接。因此 axios 抛出 Error: Socket hang up unexpectedly

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();
})

关于node.js - 使用 axios 时套接字挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64888841/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com