繁体   English   中英

带有 express 和 nodejs 的空体

[英]Empty body with express and nodejs

我正在尝试使用 mongoose 通过 express 和 node js 插入新记录。

我的配置是我的 app.js:

import express from 'express';
import morgan from 'morgan';
import cors from 'cors';
import path from 'path';

const app = express();
// Conexión base de datos
const mongoose = require('mongoose');

const uri = 'mongodb://localhost:27017/marcosgarciatfg';
const options = {useNewUrlParser: true, useCreateIndex: true};

// Or using promises
mongoose.connect(uri, options).then(
  /** ready to use. The `mongoose.connect()` promise resolves to mongoose instance. */
  () => {
    console.log('Conectado a DB');
  },
  /** handle initial connection error */
  err => { 
    console.log(err);
  }
);

app.use('/api', require('./routes/nota.js'));

//Middleware
app.use(morgan('tiny'));
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
//app.use(express.static(path.join(__dirname, 'public')));rs

// Rutas
app.get('/', (req, res) => {
    res.send('Hello Wooooorld!');
});

这是我关于路线的 nota.js:

import express from 'express';
const router = express.Router();

// importar el modelo nota
import Nota from '../models/nota';

// Agregar una nota
router.post('/nueva-nota', async(req, res) => {
  const body = req.body;  
  try {
    console.log('body: ' + body);
    const notaDB = await Nota.create(body);
    res.status(200).json(notaDB); 
  } catch (error) {
    return res.status(500).json({
      mensaje: 'Ocurrio un error',
      error
    });
  }
});

这在 Postman 上始终返回200:OK且响应为空,并且在控制台日志中,正文始终未定义。 我做错了什么?

在使用路由之前,您需要应用 express.json() 中间件。

//Middleware
app.use(morgan('tiny'));
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use('/api', require('./routes/nota.js'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM