尝试使用sequelize with mysql和node findone时出现未定义的错误

6gpjuf90  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(156)

据我所知,我已经正确地设定了这个电话的承诺 res.send(); 似乎是被调用,但有一个错误被抛出,它告诉我的是,错误是未定义的。显然这对我没什么帮助。
引起问题的原因是:

db.user.findOne({ where: {username: testUser} })
                        .then((username) => {
                            res.send({'created user':username.id});
                        })

我正在尝试创建一个用户,然后在完成之后,查找新创建的用户的id,并为他们创建一个会话。用户肯定是被创建的,但是我注意到在chrome上检查fineone之后传入username的变量是空的。
非常感谢您的帮助。

const express = require('express');
const router = express.Router();
const util = require('util');
const bcrypt = require('bcrypt');
const session = require('express-session');

const { check, validationResult } = require('express-validator/check');

//require models
const db = require("../models/index");
var input = req.body;
    try{ //validation
                req.check('firstName').isLength({min:1, max:100});
                req.check('lastName').isLength({min:1, max:100});
                req.check('email').isEmail();
                req.check('username').isLength({min:1, max:15}).isAlphanumeric();
                req.check('password').isLength({min:8, max:100});

            // check for errors in validation obj!
            var errors = req.validationErrors();
            if (errors) {
                res.send('There have been validation errors: ' + util.inspect(errors), 400);
                return;
            }

            var testName = input.firstName;
            var testName2 = input.lastName;
            var testEmail = input.email;
            var testUser = input.username;

            //hash password
            const saltRounds = 10;
            bcrypt.hash(input.password, saltRounds, function(err, hash) {
                var testPass = hash;
                debugger;
                //insert user and newly hashed password into db
                db.user.create({
                    first_name:testName,
                    last_name:testName2,
                    email:testEmail,
                    username:testUser,
                    hashed_password:testPass})
                    .then(
                    // search for just added user
                    db.user.findOne({ where: {'username': testUser} })
                        .then((username) => {
                            res.send({'created user':username.id});
                        })
                        .catch(err=>console.log('err',err))
                    )
                    .catch(err=>console.log('error:', err));
            });

        }catch(error){
            //console.log('validation error:',error);
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题