Node.js 在索引中调用控制器有困难

Node.js 在索引中调用控制器有困难,node.js,api,express,Node.js,Api,Express,我在用express重构代码时遇到了麻烦,我对这种开发还不熟悉 //index.js const express = require('express') const app = express() const bodyParser = require('body-parser') const connection = require('./config/database') const User = require('./models/User') app.use(bodyParser.

我在用express重构代码时遇到了麻烦,我对这种开发还不熟悉

//index.js

const express = require('express')
const app = express()
const bodyParser = require('body-parser')
const connection = require('./config/database')

const User = require('./models/User')

app.use(bodyParser.json())

connection
    .authenticate()
    .then(() => {
        console.log('Conexão feita com o banco de dados')
    })
    .catch((err) => {
        console.log(err)
    })

app.get('/', (req, res) => {
    res.send('Rodando')
})

app.post('/createUser', {...})

app.listen(3000, () => {
    console.log('Rodando')
})
下面是我的控制器,我在这里创建我的用户

//userController.js

const bcrypt = require('bcrypt-nodejs')
const User = require('../models/User')

module.exports = () => {
    const obterHash = (password, callback) => {
        bcrypt.genSalt(10, (err, salt) => {
            bcrypt.hash(password, salt, nul, (err, hash) => callback(hash))
        })
    }

    const save = (req, res) => {
        obterHash(req.body.password, hash => {
            const password = hash

            User.create({
                name: req.body.name,
                email: req.body.email,
                password: password
            }).then(() => {
                res.status(202)
            }).catch(() => {
                res.status(404)
            })
        })
    }

    return { save }
}
我想在索引中使用我的这个控制器。 如果有人有关于如何重构此代码的示例


我不知道如何在我的索引中调用此控制器

此代码与您的代码类似: 您的控制器:

module.exports=()=>{
常数x=(a)=>a*a;
返回{x}
}
您的主要代码:

const c=require('./controller.js');
console.log(c().x(2));//将打印出4个

只需使用
require
导入它,并在路由中使用它,
const userscocontroller=require('/pathto/usercontroller.js')
请给我一个例子,因为我以前做过,请求没有加载。我发现您只返回了保存函数。您检查了我的控制器的工作情况吗?您问过如何使用它,当有大量的控制器方法时,最好使用
。我刚才问过如何使用它,我很感激你的努力,但你的回答没有solve@RuanDuarte我更新了答案,希望它能帮助你理解如何使用。