[英]Node.js and MySQL function usage
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模塊,因此上面的代碼更像是您需要實現的一般概念。 希望它會有所幫助。
如何從另一個名為server.js的文件中發送用戶名和密碼
作為上面寫的查詢的參數並獲得一定的值?
使用exports
對象。 有關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
});
為什么要拆分查詢?
// 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 ...
}
);
我不確定你在問什么,但我認為這至少應該讓你更接近你的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.