Сообщение не работает в узле js express

#mongodb #express #mongoose #nosql #mean

Вопрос:

Когда я пытаюсь передать запрос на публикацию в приложении, он не работает. Когда я пытаюсь опубликовать данные с помощью postman, данные не передаются, и в качестве выходных данных я получаю следующие значения.

«_id»: «615f2fe2fc52303bdb758e93», «Секрет»: «$2a$10$AmJCbqiunWY2S8kVBbx.a.», «__v»: 0

Это мои коды.

app.js

 require("./config/config");
require("./models/db");

const express = require("express");
const bodyParse = require("body-parser");
const cors = require("cors");

const rtsIndex = require("./route/index.router");

var app = express();

app.use(bodyParse.json());
app.use(cors());
app.use("/api", rtsIndex);

app.listen(process.env.PORT, () =>
    console.log(`Server started at port : ${process.env.PORT}`)
);
 

studentModel.js

 const mongoose = require("mongoose");
const bcrypt = require("bcryptjs");

var studentScheme = new mongoose.Schema({
    fullname: {
        type: String,
    },
    email: {
        type: String,
    },
    password: {
        type: String,
    },
    saltSecret: String,
});

studentScheme.pre("save", function (next) {
    bcrypt.genSalt(10, (err, salt) => {
        bcrypt.hash(this.password, salt, (err, hash) => {
            this.password = hash;
            this.saltSecret = sa<
            next();
        });
    });
});

mongoose.model("Student", studentScheme);
 

studentController.js

 const mongoose = require("mongoose");    
const Student = mongoose.model("Student");

module.exports.resgiter = (req, res, next) => {
    var student = new Student();
    student.fullname = req.body.fullname;
    student.email = req.body.email;
    student.password = req.body.password;
    student.save((err, doc) => {
        if (!err) res.send(doc);
    });
};
 

router.js

 const express = require("express");
const router = express.Router();    
const ctrlStudent = require("../controller/student.controller");

router.post("/register", ctrlStudent.resgiter);

module.exports = router;
 

Пожалуйста, кто-нибудь, помогите мне; я не понимаю, что не так с моим кодом

Ответ №1:

В основном его всегда предпочитают использовать async - await всякий раз , когда кажется, что есть обещание (не точное обещание в nodejs, просто термин, который я использовал здесь ) как таковое, которое оно возвращает.

Поэтому , используя async - await , я не знаю, как ваши данные хранятся в вашей базе данных; но вы можете попробовать приведенный ниже код и проверить, работает это или нет:

 const mongoose = require("mongoose");
const Student = mongoose.model("Student");

module.exports.resgiter = async (req, res, next) => {
    var student = new Student({
        fullname: req.body.fullname,
        email: req.body.email,
        password: req.body.password,
    });

    await student.save((err, doc) => {
        if (!err) {
            console.log("Saving the document...")
            res.send(doc);
        }
    });
};
 

Вы можете перейти по ссылкам ниже для асинхронного ожидания

https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

https://hackernoon.com/6-reasons-why-javascripts-async-await-blows-promises-away-tutorial-c7ec10518dd9

https://nodejs.dev/learn/modern-asynchronous-javascript-with-async-and-await

Комментарии:

1. Это отлично работает, большое спасибо

2. если это сработало, вы также можете проголосовать за ответ…..спасибо