簡體   English   中英

如何在node.js中的外部函數中使用內部結果

[英]how to use inner's result in outer function in node.js

目前,我在node.js中學習node-mysql,但遇到一個問題,嘗試了很多,我不知道如何解決?

像這樣:

var express = require('express');
var app = express();
var mysqlcon=require('./testmysql');
var mysqlconn=mysqlcon.conn;
var http=require("http");
var url=require("url");
app.use('/sql',testExist).listen(3000);
function testExist(req,res,next){
    var query = url.parse(req.url,true).query;
    var name=query.name;
    mysqlconn.connect();
    var result=function(err, results){
    return results.length;
    }
   mysqlconn.query('select * from  user where name = ?',[name],result);
   mysqlconn.end();
   if(result>1)
      console.log('result:'+result)
   res.end("name is already exist!")
}

我想在外部函數中獲取內部函數的結果,例如此類查詢的長度將為1(results.length == 1),但是我想在testExist()中使用結果,我們知道節點使用回調函數,所以我無法獲得外部函數的內部結果。 任何人都可以幫我解決這個問題。

您需要在回調中移動使用代碼。

function callback(err, results) {
  if(results.length >1) console.log('result:' + results.length);
  res.end("name is already exists!");
}
mysqlconn.query("select * from user where name= ?", [name], callback);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM