Javascript Fetch不返回任何内容

Javascript Fetch不返回任何内容,javascript,fetch-api,Javascript,Fetch Api,我正在用fetch发出一个post请求,并寻找回复,以便在我的页面上使用它。 我有这样一个代码: e.preventDefault(); const data = {name: document.querySelector('input[name = "name"]').value, age: document.querySelector('input[name="age"]').value} fetch('/', { method:

我正在用fetch发出一个post请求,并寻找回复,以便在我的页面上使用它。 我有这样一个代码:

  e.preventDefault();
  const data = {name: document.querySelector('input[name = "name"]').value, age: document.querySelector('input[name="age"]').value}
  fetch('/', {
    method: 'POST', // *GET, POST, PUT, DELETE, etc.
    headers: {
      'Content-Type': 'application/json'
      // 'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: JSON.stringify(data) // body data type must match "Content-Type" header
}).then((response) => response.json()).then((data) => console.log(data));
  
})

数据进入后端正常,但fetch显然不返回任何内容,并且并没有响应和数据。我错过了什么

看起来我没有寄回任何东西,但我不知道在这种情况下该怎么做

const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const handlebars = require('express-handlebars');
const path = require('path');
const {MongoClient, ObjectID} = require('mongodb');
const url = 'mongodb://127.0.0.1:27017/';
const bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

app.use(express.static('public'));
app.set('views', path.join(__dirname, '/views'));
app.engine('handlebars', handlebars());
app.set('view engine', 'handlebars');

app.get('/', (req, res) => {
  res.render('home');
})



app.get('/data', (req, res) => {
  MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {
    if (err) {
      return console.log(err);
    }
    console.log('Connect success');
    const dbname = 'people';
    const db = client.db(dbname);
    db.collection('people').find().toArray()
    .then(response => response)
    .then(data => res.send(data));
  })
})

app.post('/', (req, res) => {
  MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {
    if (err) {
      return console.log(err);
    }
    console.log('Connect success');
    const dbname = 'people';
    const db = client.db(dbname);
    db.collection('people').insertOne(req.body, (error) => {
      if (error) {
        return console.log(error);
      }
      console.log('Insertion success');
    })
})})

app.listen(port, () => {
  console.log(`server has started on ${port}`);
})

你是对的,我什么都不发,这就是为什么我们什么都不做。我已经知道我错过了什么,谢谢你

正确的代码是:

app.post('/', (req, res) => {
  MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {
    if (err) {
      return console.log(err);
    }
    console.log('Connect success');
    const dbname = 'people';
    const db = client.db(dbname);
    const entry = req.body;
    db.collection('people').insertOne(entry, (error) => {
      if (error) {
        return console.log(error);
      }
      console.log('Insertion success');
      res.send(entry);
    })
})})

您没有从后端返回任何内容,因此fetch不会返回任何内容,显然您没有得到任何响应。试着像下面那样发送回复

app.post('/', (req, res) => {
    MongoClient.connect(url, {
        useUnifiedTopology: true
    }, (err, client) => {
        if (err) {
            return console.log(err);
        }
        console.log('Connect success');
        const dbname = 'people';
        const db = client.db(dbname);
        db.collection('people').insertOne(req.body, (error, response) => {
            if (error) {
                return console.log(error);
            } else {
                console.log('Insertion success');
                console.log('inserted record', response.ops[0]);
                res.send(response.ops[0]);
            }
        })
    })
})

请尝试一下,并告诉我它是否有效。

您是否从后端发送了响应?您能在这里发布您的后端代码吗?您好,@ubaidshaikh,谢谢您的回复,我已经发布了完整的后端代码。顺便问一下,您想要什么作为回复?不,它不起作用,给我-无法读取未定义的属性“then”。我想获取我插入的对象,以便在前端处理它。