Node.js返回的不是函数

问题描述 投票:0回答:2

我想使用登录方法,但是在定义和导入时,浏览器未返回函数

{{代码:-1,msg:“登录名不是函数”,错误:500,errorMsg:“登录名不是函数”}]

我是初学者,我的一般逻辑是从第一段代码中调用登录。登录名写在代码的第二部分,然后第二部分将调用SQL第三部分的函数

const express = require('express')
const Result=require('../models/Result')
const login=require('../services/user')
// const debug = require('../utils/constant').debug
const router = express.Router()

router.post('/login', function(req, res) {
  console.log('/user/login', req.body)
  // debug && console.log(sql);
  const {username,password}=req.body
  login(username,password).then(user=>{
    if(!user||user.length ===0){
      new Result('登陆成功').success(res)
    }else{
      new Result('登陆失败').fail(res)
    }
  })

})
module.exports = router

'./ services / user'enter image description here

const {querySql}=require('../db')
return function login(username,password){
    querySql("select * from admin_user where username='${username}' and password='${password}'").then(results =>{
    }).catch(err =>{
      console.log(err);   
    })
}
module.exports={

}

和'./db/index.js'

const mysql =require('mysql')
const config =require('./config')
function connect() {
    return mysql.createConnection({
      host:config.host,
      user:config.user,
      password:config.password,
      database:config.database,
      multipleStatements: true
    })
  }

function querySql(sql){
  const conn =connect()
  return new Promise((resolve,reject)=>{
    try{
      conn.query(sql,(err,results) => {
        if(err){
          reject(err)
        }else{
          resolve(results)
        }
      })
    }catch(e){
      reject(e)
    }finally{
      conn.end()
    }
  })
}
module.exports={
  connect,
  querySql
}
javascript node.js express
2个回答
0
投票

TypeError:querySql不是函数登录时(/Users/dujinyang/admin-imooc-node/services/user.js:3:3)在对象。 (/用户/dujinyang/admin-imooc-node/services/user.js:8:17)在Module._compile(内部/模块/cjs/loader.js:1158:30)在Object.Module._extensions..js(内部/模块/cjs/loader.js:1178:10)在Module.load(internal / modules / cjs / loader.js:1002:32)在Function.Module._load(内部/模块/cjs/loader.js:901:14)在Module.require(internal / modules / cjs / loader.js:1044:19)在要求时(内部/模块/cjs/helpers.js:77:18)在对象。 (/用户/dujinyang/admin-imooc-node/router/user.js:3:17)在Module._compile(internal / modules / cjs / loader.js:1158:30)


-1
投票

NodeJS中的函数已导出,未返回。

function login(username,password){
     querySql("select * from admin_user where username='${username}' and password='${password}'")
          .then(results =>{})
          .catch(err =>{ console.log(err); })
}

exports.login = login();

然后

const {login} = require('../services/user');
© www.soinside.com 2019 - 2024. All rights reserved.