首页 > 解决方案 > ReferenceError:_user 未在 \routes\user.js:35:13 中定义

问题描述

有人可以帮助尝试解决这个问题 3 或 4 天吗我不断收到 ReferenceError: _user is not defined at \routes\user.js:35:13 dory 如果我发布了这个错误请原谅我

我正在使用节点和“bcrypt”:“^5.0.1”、“body-parser”:“^1.19.0”、“dotenv”:“^10.0.0”、“express”:“^4.17.1” , "express-validator": "^6.6.1", "mongoose": "^6.0.6",

//index.server.js
const express = require (`express`);
const env = require (`dotenv`);
const app = express();
const bodyParser = require (`body-parser`);
const mongoose = require (`mongoose`);


//routes
const userRoutes = require(`./routes/user`);

//enviroment verables .env
env.config();

//db connection


    mongoose.connect(
        mongodb+srv://${process.env.MONGO_DB_USER}:${process.env.MONGO_DB_PASSWORD}@localhost:27017/${process.env.MONGO_DB_DATABASE}?retryWrites=true&w=majority`,
         
        {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        //useCreateIndex: true
        }
    ).then(() => {
        console.log(`DB CONNECTED `)
    });

app.use(bodyParser());
app.use(`/api`, userRoutes);

app.listen(process.env.Port, () => {
    console.log(`server is up on port ${process.env.Port} `);
});



//routes/user.js
const { request } = require("express");
const express = require(`express`);
const router = express.Router();
const User = require(`../models/user`);

router.post(`/signin`, (reg, res) => {




});

router.post(`/signup`, (req, res) => {

        User.findOne({ email: req.body.email })
        .exec((error, user) => {
            if (user) return res.status(400).json({
                message: `User already registered`
            });

            const {
                firstname,
                lastname,
                email,
                password
            } = req.body;
            const_user = new User({
                firstname,
                lastname,
                email,
                password,
                username: Math.random().toString()
            });

            _user.save((error, data) => {
                if (error) {
                    return res.status(400).json({
                        message: "somthing went wrong"
                    });
                }

                if (data) {
                    return res.status(201).json({
                        User: data
                    })
                }
            });


        });


});

    module.exports = router;


//models/user.js
const mongoose = require(`mongoose`);
const bcrypt = require(`bcrypt`);

const userSchema = new mongoose.Schema({
    firstName: {
        type: String,
        required: true,
        trim: true,
        min: 3,
        max: 20
    },
    lastName: {
        type: String,
        required: true,
        trim: true,
        min: 3,
        max: 20
    },
    username: {
        type: String,
        required: true,
        trim: true,
        unique: true,
        index: true,
        lowercase: true
    },
    email: {
        type: String,
        required: true,
        trim: true,
        unique: true,
        lowercase: true
    },
    hash_password: {
        type: String,
        required: true
    },
    role: {
        type: String,
        enum: [`user`, `admin`],
        default: `user`
    },
    contactNumber: {type: String},
    pofilePicture: {type: String},
}, {timestamps: true});


userSchema.virtual(`password`)
    .set(function(password){
        this.hash_password = bcrypt.hashSync(password, 10);
    });

    userSchema.method = {
        authentocate: function(password) {
            return bcrypt.compareSync(password, this.hash_password);
        }
    }

    module.exports =  mongoose.model('User', userSchema);

标签: node.jsmongooseexportbcryptbody-parser

解决方案


router.post('signup')-callback 中,寻找

const_user = new User({并添加缺少的空间,如下所示:const _user = new User({.

提示:使用带有语法突出显示的 IDE(即 Visual Studio Code),因此关键字(例如const)通常是不同于其他代码位的另一种颜色,因此您可以更清楚地发现这些类型的错字。


推荐阅读