ログインメソッドを使用したいのですが、定義してインポートすると、ブラウザが関数を返さない
{code: -1, msg: "login is not a function", error: 500, errorMsg: "login is not a function"}
私は初心者です。私の一般的なロジックは、最初のコードからログインを呼び出すことです。ログインはコードの2番目のセクションに記述され、2番目のセクションはSQLの3番目のセクションの関数を呼び出します。
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
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
}
新しいエラー
querySql("select * from admin_user'")
^
TypeError: querySql is not a function
at login (/Users/dujinyang/admin-imooc-node/services/user.js:3:3)
at Object.<anonymous> (/Users/dujinyang/admin-imooc-node/services/user.js:7:17)
および新しいquerySql
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()
}
})
}
exports.querySql = querySql();
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');
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加