刚接触node.js,只是不知道如何执行以下操作:
我的数据库模块上有这个:
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 的文件发送用户名和密码
作为上面编写的查询的参数并获取特定值?
有什么办法可以做到这一点吗?
最佳答案
好的,我想我现在明白了。您在 dataBase.js
中创建临时表,并希望在 server.js
的请求处理程序中对该表执行查询。如果是这样,您应该考虑以下方法:
// dataBase.js
var mysql = require('mysql');
var MY_DATABASE='nodejs_mysql';
// connect to database
var client = mysql.createClient({
user: 'root',
password: 'root',
});
// create temporary table
client.query(
'CREATE TEMPORARY TABLE '+USER+
'(username VARCHAR(255), '+
'password VARCHAR(255), '+
'name VARCHAR(255), '+
'picture VARCHAR(255), '+
'PRIMARY KEY(username))'
);
// that's what I think you need. And yes, it looks like "a good to rap" for me.
module.exports.getInfoFromTemporaryTable : function( username, password, callback) {
client.query(
'select username, password from ' + USER + 'where username=?',
[req.body.username] , 'AND password=?', [req.body.password],
callback
);
}
我唯一不明白的是你从哪里获得USER
变量。注意这一刻。也许将其传递给 getInfoFromTemporaryTable()
函数。
// server.js
var db = require('./lib/dataBase');
app.get(someRoute, function(req, res) {
db.getInfoFromTemporaryTable( req.body.username, req.body.password,
function(err, results, fields) {
if (err) {
// handle errors or something
return;
}
// do what you need to do, using results you got from temp table
});
});
我不熟悉您使用的MySQL模块,所以上面的代码更像是您需要实现的一般概念。希望它会有所帮助。
关于javascript - Node.js 和 MySQL 函数使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963193/