node.js - 返回值未定义
问题描述
节点路线:
exports.addUser = async ( req, res, next ) => {
const name = req.body.name;
const email = req.body.email;
const password = req.body.password;
const unique = await User.isUserUnique( email );
console.log( unique );
bcrypt.hash( password, 10, function ( err, hash ) {
const user = new User( name, email, hash );
//user.saveUser();
} );
res.send( req.body );
};
模型:
const client = require( "../database/index" );
class User {
constructor( name, email, password ) {
this.name = name;
this.email = email;
this.password = password;
}
static isUserUnique( email ) {
return client.connect( () => {
return client.db( "alliance" ).collection( "users" ).findOne( { email } ).then( ( user ) => {
return user;
} );
} );
}
数据库:
const MongoClient = require( "mongodb" ).MongoClient;
const client = new MongoClient( url );
client.connect( function ( err ) {
if ( err ) {
console.log( err );
}
console.log( "Connected successfully to server" );
} );
module.exports = client;
为什么我在节点路由中声明的唯一常量未定义?它与“返回client.connect(())”有关吗?基本上我希望静态方法返回用户,所以我假设你在静态方法中要做的就是返回每个值,这样它们就会上升到调用它的父级,然后我会在被调用的常量上得到它。我做了一些类似的事情,除了这次是使用 connect 方法作为周围的父级。
解决方案
推荐阅读
- java - 无法使用自动 IT 脚本连接到远程桌面
- webpack - webpack-bundle-analyzer.openAnalyzer 选项不起作用
- nativescript - 无法在设备上应用更改:错误是:cp:无法创建目录'/platforms/android/app/src':没有这样的文件或目录
- ios - ARKit 如何停止闪烁或如何将节点定位到相机,
- android - 如何在反应导航中获取当前路线名称?
- sql-server - 为什么我的 Sql 查询第二次运行更快?
- swift - 不同的 UICollectionViewCells 具有相同的地址
- html - Laravel:查看未显示 html 数据
- jenkins - OpenShift 中的 Jenkins Pipeline 无法获取请求的存储库
- sql - 我将如何计算空值但仍指定在历史/贷款表中计数