Javascript 当我将路由放置到控制器时,我的控制台给了我一个错误

Javascript 当我将路由放置到控制器时,我的控制台给了我一个错误,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我正在设置注册帐户的路由,但是当我将路由定向到controller.js时,我的VS代码给了我一个错误 这是一个运行javascript、nodejs和react的新网站 My routes.js: const routes=require('express').Router(); const RegisterController=require(“./controllers/RegisterController”); routes.get(“/”,(req,res)=>{ return res

我正在设置注册帐户的路由,但是当我将路由定向到controller.js时,我的VS代码给了我一个错误

这是一个运行javascript、nodejs和react的新网站

My routes.js:

const routes=require('express').Router();
const RegisterController=require(“./controllers/RegisterController”);
routes.get(“/”,(req,res)=>{
return res.send('Hello,World!')
});
routes.post('/register',RegisterController.store);
module.exports=路线;
My RegisterController.js:

const User=require('../models/UserModel');
类注册控制器{
异步存储(req、res){
const email=req.body.email.toLowerCase();
const username=req.body.username.toLowerCase();
const EmailExists=wait User.findOne({email:email});
const UserExists=wait User.findOne({User:username});
如果(!EmailExists){
返回res.json({message:'此电子邮件已注册!请尝试另一封。'});
};
如果(!UserExists){
返回res.json({消息:'此用户已注册!请尝试另一个。'});
}
const{password}=req.body.password;
const user=wait user.create({
用户名,
电子邮件,
密码
});
return res.json(用户)
}
}
我希望注册我的MongoDB帐户

VS代码给我的错误是:
错误:Route.post()需要回调函数,但得到了一个[object Undefined]

RegisterController.store
未定义,因为
store
是一个实例方法而不是方法

这是一个命名问题:

const RegisterController = require('./controllers/RegisterController');
如果您有一个具有静态函数的类,例如:

class RegisterController {
    static store(req, res) {}
}
那么你可以这样称呼它:

RegisterController.store(req, res);
如果使变量名与类名相同,那么如何区分静态调用和普通调用

const RegisterController = require('./controllers/RegisterController');

RegisterController.store(req, res); // this is meant to be a static call

RegisterController.store(req, res); // this is meant to be a normal call
你用大写字母创建变量名,在我看来它应该是小写的,否则你怎么能仅仅通过查看它来区分类名和变量名呢

请尝试以下操作:

const registerController = require('./controllers/RegisterController');

routes.post('/register', registerController.store);

我希望这能为您的问题提供一个解决方案。

要访问类的非
静态
方法,您必须创建该
的实例并将其导出。
const registerController = require('./controllers/RegisterController');

routes.post('/register', registerController.store);