Запрос на публикацию не работает, появляется сообщение об ошибке «невозможно опубликовать / добавить студента / добавить» - PullRequest
1 голос
/ 10 апреля 2020

Это почтовый запрос, который я хочу отправить, но он не работает. Я пытался работать с ним в Postman, а также с использованием форм, но ошибка говорит "невозможно POST / addstudent / add" . Ниже приведен код.

Это JS-код: я использую express и использую его для публикации в MongoDB.

app.post('/addstudent/add', function(req, res){
db.collection('students').insertOne(req.body, function(error, result){
    if(error)
        throw error;
    res.json(result);
    console.log("New student Successfully Added!");
    })
})

Это код HTML:

<div class="container-fluid">
    <div class="formdiv">
        <form action="/addstudent/add" method="POST"> 
            <div class="form-group">
                <label for="exampleInputEmail1">Student Name</label>
                <input type="text" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter Name" name="Name">
                <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
            </div>
            <div class="form-group">
                <label for="exampleInputPassword1">Student Email</label>
                <input type="text" class="form-control" id="exampleInputPassword1" placeholder="Email" name="Email">
            </div>
            <div class="form-group">
                <label for="exampleInputPassword1">Phone Number</label>
                <input type="number" class="form-control" id="exampleInputPassword1" placeholder="Phone Number" name="Number">
            </div>
            <div class="form-group">
                <label for="exampleInputPassword1">Age</label>
                <input type="number" class="form-control" id="exampleInputPassword1" placeholder="Age" name="Age">
            </div>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
    </div>
</div>

Весь код JS:

var express = require('express');
var bodyParser = require('body-parser');
var mongoDB = require('mongodb').MongoClient;
var hbs = require('hbs');

var app = express();
app.use(express.static(__dirname +'/public'));

app.use( bodyParser.urlencoded());

var url = 'mongodb://localhost:27017';
var db;

mongoDB.connect(url, {useUnifiedTopology: true, useNewUrlParser: true }, 
function(error, client){
    if(error)
        throw error;
    db = client.db('attainu');
});

app.get('/instructors', function(req, res){
    res.render('instructor.hbs');
})

app.get('/students', function(req, res){
    res.render('index.hbs');
})

app.post('/addstudent/add', function(req, res){
    db.collection('students').insertOne(req.body, function(error, result){
        if(error)
            throw error;
        res.json(result);
        console.log("New student Successfully Added!");
    })
})

app.listen(3000);

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Я попытался запустить ваш код, как указано выше, все работает нормально. Я не сделал никаких изменений в коде. Данные были размещены и успешно сохранены в базе данных. Результат показан на следующем изображении:

screenshot of response shown in browser debugger console

0 голосов
/ 10 апреля 2020

Попробуйте это

var express = require('express');
var bodyParser = require('body-parser');
var mongoDB = require('mongodb').MongoClient;
var hbs = require('hbs');

const port = process.env.PORT || 3000;
var app = express();
app.use(express.static(__dirname +'/public'));

//Add this line
 app.use( bodyParser.urlencoded({extended:false}));
 app.use(bodyParser.json())

var url = 'mongodb://localhost:27017';
var db;

 mongoDB.connect(url, {useUnifiedTopology: true, useNewUrlParser: true }, 
 function(error, client){
if(error)
    throw error;
db = client.db('attainu');
  });

 app.get('/instructors', function(req, res){
 res.render('instructor.hbs');
})

app.get('/students', function(req, res){
   res.render('index.hbs');
});

app.post('/addstudent/add', function(req, res){
    db.collection('students').insertOne(req.body, function(error, result){
    if(error)
        throw error;
    res.json(result);
    console.log("New student Successfully Added!");
  });
});

app.listen(port, () => console.log(`Server is running at ${port}`));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...