Javascript 新对象在expressjs post请求中作为空对象返回

Javascript 新对象在expressjs post请求中作为空对象返回,javascript,node.js,express,postman,Javascript,Node.js,Express,Postman,这个问题快把我逼疯了 此路由的目的是创建或登录用户,我已成功创建了新用户,但我在将对象作为响应发送时遇到了问题,但所得到的只是空对象 我尝试了console.log() 这是应用程序设置 // middleware setup app.use(cors()); app.use(express.urlencoded({extended: true})); app.use(express.json()); app.use('/', usersRoute); 我的代码是这样的,它不是完整的代码,但它

这个问题快把我逼疯了

此路由的目的是创建或登录用户,我已成功创建了新用户,但我在将对象作为响应发送时遇到了问题,但所得到的只是空对象

我尝试了
console.log()

这是应用程序设置

// middleware setup
app.use(cors());
app.use(express.urlencoded({extended: true}));
app.use(express.json());
app.use('/', usersRoute);
我的代码是这样的,它不是完整的代码,但它显示了代码失败的地方

router.post('/register', async (req, res) => {

const enteredUser = req.body;

// Validate entered user information
const { error } = validateUser(enteredUser);
if (error) return res.status(400).send(error);

try {

    // Make sure user does not exist
    const isAlreadyUser = await User.findOne({ 
        username: enteredUser.username
    });
    if (isAlreadyUser) {
        const err = new Error('already user');
        return res.status(201).send({
            isAlreadyUser,
            err
        });
    }

// Hash the password
    const salt = await bcrypt.genSalt(10);
    const hashed = await bcrypt.hash(enteredUser.password, salt);

    console.log(salt, hashed);

    // Create new model instance
    const newUser = new User({
        username: enteredUser.username,
        password: hashed,
        isCustomer: enteredUser.isCustomer
    });

    // Save new user to db
    await newUser.save();

    // generate token
    const token = newUser.genToken();

    console.log(token);

    // send token to front-end
    return res.status(200).send(token);

} catch (error) {

    return res.status(400).send(error);
}
})
答案是这样的

{
    "isAlreadyUser": {
        "isCustomer": true,
        "_id": "5fb0df0c7f3bb4069ed32615",
        "username": "Raffi2",
        "password": "$2b$10$tlHJGtax75mR4L3gG.cJhuIfy/t7IEKX4n49kIElZ41k7jZAe/2rO",
        "__v": 0
    },
    "err": {}
}
问题发生在两种对象类型上,如
Error
jsonwebtoke

有人能帮忙吗?

res.status(201).send
调用将在属性
err
中返回一个空对象,因为
new Error('ready user')
的返回对象的属性不可枚举,响应为JSON.stringized

参考:


将“genToken”更改为“getToken”怎么样?“genToken”是我创建的模式上的一个方法,谢谢。console.log(令牌)的输出是什么?它被定义了吗?问题是控制台没有显示任何东西,它甚至没有说已定义或未定义Hanks mate感谢它,还有另一个对象“token”是未定义的,因为我在getToken中使用了它,它是箭头函数。恢复正常功能,现在问题已完全解决。:)