如何在node.js中使用inner函数的外部函数

目前,我在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()中的结果,我们知道节点使用callback函数,所以我不能得到外层function的内在结果。 那么,任何人都可以帮我解决这个问题。

您需要在callback中移动使用的代码。

 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);