Node.jsのreturnnotは関数です

nick-yy

ログインメソッドを使用したいのですが、定義してインポートすると、ブラウザが関数を返さない

{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]

編集
0

コメントを追加

0

関連記事

分類Dev

Node.js REPLの関数を)(で呼び出すのはなぜですか?

分類Dev

Spread.jsで次のnode.js関数を呼び出す方法は?

分類Dev

Node js、Javascript:関数の戻り値が未定義なのはなぜですか?

分類Dev

node.jsで将来の特定の時間に関数を起動する方法は?

分類Dev

Node.jsのAWSLambda関数から戻る正しい方法は何ですか?

分類Dev

Node.jsで別の関数のコールバックとして関数を渡す方法は?

分類Dev

TypeError:countはnode.jsの関数ではなく、続編

分類Dev

関数がサブ関数を返すようにしますが、デフォルトでは別の関数(Node.js / JS)になります

分類Dev

Node jsの関数の外で変数が見えるようにすることはできませんか?

分類Dev

ハンドラー関数がelectron / node.jsで匿名でのみ機能するのはなぜですか?

分類Dev

node.js関数は未定義の値を返します

分類Dev

TypeError:[関数名]はmongooseとnode.jsの関数ではありません

分類Dev

ここnode.jsで `func`が関数ではないのはなぜですか?

分類Dev

Node js、関数の実行

分類Dev

Node.jsで非同期関数の結果を表示する方法

分類Dev

node.jsでこの関数を非同期にする方法

分類Dev

firebase node.js /express.jsは複数のfirebase関数を追加します

分類Dev

Node jsでutil.promisifyの代替関数を作成するにはどうすればよいですか?

分類Dev

多くのutil.is *関数がnode.js v4.0.0で廃止されたのはなぜですか?

分類Dev

node.jsは、サーバー応答での非同期関数呼び出しの結果です

分類Dev

実行時にNode.jsの関数でオブジェクトを生成することは可能ですか?

分類Dev

node.jsのLESSに関数を追加するにはどうすればよいですか

分類Dev

mongoDBのNode.jsで複数のpromise関数をチェーンする

分類Dev

Node Js、Async Js、Listenerは関数である必要があります

分類Dev

Node.js:非同期関数はforループ内でPromiseの解決を待たないようです

分類Dev

Node.js関数がJSDomserializeDocumentの結果を返さないのはなぜですか?

分類Dev

node.jsの非同期関数から値を返すことは可能ですか?

分類Dev

Node.jsとV8の関係は何ですか?

分類Dev

Node.jsとV8の関係は何ですか?

Related 関連記事

  1. 1

    Node.js REPLの関数を)(で呼び出すのはなぜですか?

  2. 2

    Spread.jsで次のnode.js関数を呼び出す方法は?

  3. 3

    Node js、Javascript:関数の戻り値が未定義なのはなぜですか?

  4. 4

    node.jsで将来の特定の時間に関数を起動する方法は?

  5. 5

    Node.jsのAWSLambda関数から戻る正しい方法は何ですか?

  6. 6

    Node.jsで別の関数のコールバックとして関数を渡す方法は?

  7. 7

    TypeError:countはnode.jsの関数ではなく、続編

  8. 8

    関数がサブ関数を返すようにしますが、デフォルトでは別の関数(Node.js / JS)になります

  9. 9

    Node jsの関数の外で変数が見えるようにすることはできませんか?

  10. 10

    ハンドラー関数がelectron / node.jsで匿名でのみ機能するのはなぜですか?

  11. 11

    node.js関数は未定義の値を返します

  12. 12

    TypeError:[関数名]はmongooseとnode.jsの関数ではありません

  13. 13

    ここnode.jsで `func`が関数ではないのはなぜですか?

  14. 14

    Node js、関数の実行

  15. 15

    Node.jsで非同期関数の結果を表示する方法

  16. 16

    node.jsでこの関数を非同期にする方法

  17. 17

    firebase node.js /express.jsは複数のfirebase関数を追加します

  18. 18

    Node jsでutil.promisifyの代替関数を作成するにはどうすればよいですか?

  19. 19

    多くのutil.is *関数がnode.js v4.0.0で廃止されたのはなぜですか?

  20. 20

    node.jsは、サーバー応答での非同期関数呼び出しの結果です

  21. 21

    実行時にNode.jsの関数でオブジェクトを生成することは可能ですか?

  22. 22

    node.jsのLESSに関数を追加するにはどうすればよいですか

  23. 23

    mongoDBのNode.jsで複数のpromise関数をチェーンする

  24. 24

    Node Js、Async Js、Listenerは関数である必要があります

  25. 25

    Node.js:非同期関数はforループ内でPromiseの解決を待たないようです

  26. 26

    Node.js関数がJSDomserializeDocumentの結果を返さないのはなぜですか?

  27. 27

    node.jsの非同期関数から値を返すことは可能ですか?

  28. 28

    Node.jsとV8の関係は何ですか?

  29. 29

    Node.jsとV8の関係は何ですか?

ホットタグ

アーカイブ