0

アプリケーションのルートに着手する前に、PUT が完全に作成されていない POSTMAN でいくつかのリクエストを作成しました。

これは、ExpressJS での私のサーバーの構成です。

const express = require('express');
const morgan = require('morgan');
const helmet = require('helmet');
const mongoose = require('mongoose');

const app = express();

// Settings
app.set('port', process.env.PORT || 3000);
mongoose.connect('mongodb://localhost/mevn-curso', { 
    useNewUrlParser: true,
    useFindAndModify: false,
    useCreateIndex: true
})
        .then(db => console.log('DB is connected'))
        .catch(err => console.log(err));

mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);

// Middlewares
app.use(morgan('dev'));
app.use(express.json());
app.use(helmet());

// Routes
app.use('/tasks/', require('./routes/tasks'));


// Static files
app.use(express.static(__dirname + '/public'))

app.listen(app.get('port'), ()=> {
    console.log('Server on port', app.get('port'));
});

それは私にとっては正常に機能し、これは私が使用しているルーターであり、routes フォルダーの tasks.js ファイル内にあります。

const express = require('express');
const router = express.Router();

const Task = require('../models/Task');


router.get('/', async (req,res)=> {
  const tasks = await Task.find();
  res.json(tasks);
})

router.post('/', async (req,res) => {
   const task = new Task(req.body);
   await task.save();
   res.json({
       status: "Task Saved"
   })
})

router.put('/:id', async (req,res)=> {
    console.log(req.params._id);
    console.log(req.body);
    await Task.findByIdAndUpdate(req.params._id, req.body)
    res.json('recivied');
    console.log('Listo')
})

module.exports = router;

コンソールでは、エラーが発生していないようです。通常の POSTMAN でリクエストすると、コンソールのログが返されます。サーバーでさえjsonとすべてに応答します。ただし、データベース内のデータは変更されません。これは GET や POST では発生せず、逆にすべてがうまくいっています。

ここで、POSTMAN でリクエストを行う方法を説明します。まず、データベースに既にあるデータを表示します。通常はブラウザで取得リクエストを行います。

GET 請願を含むデータ

準備ができて、PUT リクエストを作成しているとき、これは POSTMAN での私の構成です。

ポストマン構成 1

これは json 型のコンテンツ タイプです。これを処理するためです。次に本文が続きます。

ポストマン構成 2

これがコンソールの答えです:

コンソール

それは何だと思いますか?

4

1 に答える 1