Javascript Node.js和MySQL函数用法

Javascript Node.js和MySQL函数用法,javascript,mysql,sql,node.js,Javascript,Mysql,Sql,Node.js,刚接触node.js,无法理解如何执行以下操作: 我的db模块上有以下内容: var mysql = require('mysql'); var MY_DATABASE='nodejs_mysql'; var client = mysql.createClient({ user: 'root', password: 'root', }); 我正在构建这个表: client.query( 'CREATE TEMPORARY TABLE '+USER+ '(username VARCHAR(25

刚接触node.js,无法理解如何执行以下操作:

我的db模块上有以下内容:

var mysql = require('mysql');
var MY_DATABASE='nodejs_mysql';

var client = mysql.createClient({
user: 'root',
password: 'root',
});
我正在构建这个表:

client.query(
'CREATE TEMPORARY TABLE '+USER+
'(username VARCHAR(255), '+
'password VARCHAR(255), '+
'name VARCHAR(255), '+
'picture VARCHAR(255), '+
'PRIMARY KEY(username))'
);
稍后,我要执行以下操作:

client.query('select username, password from ' + USER + 'where username=?',[req.body.username] , 'AND password=?', [req.body.password] 
function (err, results, fields) {
        if (err) {
            throw err;
        }
   //some actions performed here
});
所有这些都在同一个dataBase.js文件中

如何从另一个名为server.js的文件发送用户名和密码

作为上面写的查询的参数,是否返回某个值

有办法吗

如何从另一个名为server.js的文件发送用户名和密码

作为上面写的查询的参数,是否返回某个值

使用
导出
对象。有关NodeJS模块系统的更多信息,请参见

// server.js
exports.username = function {
  return "foo";
};

exports.password = function {
  return "bar";
};

// database.js
require('./server.js');
var client = mysql.createClient({
  user:     server.username,   // exports.username in server.js
  password: server.password,   // exports.password in server.js
});

好的,我想我现在明白了。您在
dataBase.js
中创建临时表,并希望在
server.js
中的请求处理程序中在此表中执行查询。如果是这样的话,你应该考虑以下问题:

//dataBase.js
var mysql=require('mysql');
var MY_DATABASE='nodejs_mysql';
//连接到数据库
var client=mysql.createClient({
用户:'根',
密码:“root”,
});
//创建临时表
client.query(
“创建临时表”+用户+
“(用户名VARCHAR(255),”+
'密码VARCHAR(255),'+
'名称VARCHAR(255),'+
“picture VARCHAR(255),”+
'主键(用户名))'
);
//这就是我认为你需要的。是的,这对我来说是一个很好的说唱。
module.exports.getInfoFromTemporaryTable:函数(用户名、密码、回调){
client.query(
'从'+USER+'中选择用户名和密码,其中用户名=?',
[req.body.username]、'和密码=?'、[req.body.password],
回拨
);
}
我唯一搞不清楚的是从哪里得到
USER
变量。注意这一刻。可以将其传递给
getInfoFromTemporaryTable()
函数

//server.js
var db=require('./lib/dataBase');
应用程序获取(某些路由、功能(请求、恢复){
db.getInfoFromTemporaryTable(req.body.username、req.body.password、,
函数(错误、结果、字段){
如果(错误){
//处理错误之类的
返回;
}
//使用从临时表中获得的结果,做您需要做的事情
});
});

我不熟悉您使用的MySQL模块,所以上面的代码更像是您需要实现的一般概念。希望能有所帮助。

为什么要拆分查询

// server.js
exports.username = "Your username.";
exports.password = "Your password.";

// dataBase.js
// ... mysql connection setup ...
var server = require("./server");
client.query('SELECT username, password FROM `' + USER + '` WHERE username=? AND password=?',
  [server.username, server.password],
  function (err, results, fields) {
    if (err) {
      throw err;
    }
    // ... some actions performed here ...
  }
);

我不太清楚你在问什么,但我认为这至少会让你更接近你的答案。

我想我在这里被误解了。。。我想获取查询的值:client.query('从'+USER+'中选择用户名、密码,其中用户名=?',[req.body.username],'和密码=?',[req.body.password]并返回一些值…我认为您的答案不会这样做。我需要添加更多的查询,让它们返回更多的值…现在更清楚了吗?您想从何处获取查询值?其他模块?其他DB查询?据我所知,源是在dataBase.js文件中创建的临时表。当请求到来时,您可以ant从这个临时表中查询一些值,并在请求处理程序中使用它们。我说得对吗?@elmigranto我想从其他模块中获取用于查询的值,是的。“rap”好吗函数中接收参数并返回某些内容的最后一个查询?不确定您到底想做什么,但乍一看,您似乎需要阅读有关节点的信息,可能还有
模块。exports
()我的意思是问“rap”可以吗函数中接收参数并返回值的代码的最后一部分?谢谢你的回答!关于用户变量,它不是一个变量,它是一个表,没有写在这里…:)再次感谢!